#include <stdio.h>
#include <malloc.h>
main()
{
int arr[5]={1,2,3,4,5};
int brr[5]={6,7,8,9,10};
int *p,*m;
m=&brr[0];
p=&arr[4];
int count=5;
while(count!=0)
{
p++;
*p=*m;
m++;
count--;
}
p=&arr[0];
while(count<=9)
{
printf("%d ",*p);
p++;
count++;
}
return 0;
}
最佳答案
您正尝试写入超过数组 arr
的末尾,该数组具有未定义的行为。
相反,您应该分配一个具有足够空间的数组来组合两个数组,然后写入该数组。
int arr[10]={1,2,3,4,5};
另外,请注意 memcpy
已经完成了您想要的操作,尽管我认为这只是一个练习。
#include <stdio.h>
#include <malloc.h>
#include <string.h>
main()
{
int arr[10]={1,2,3,4,5};
int brr[5]={6,7,8,9,10};
memcpy(arr + 5, brr, 5*sizeof(int));
return 0;
}
关于c - 我尝试连接两个数组 arr[5] 和 brr[5] s.t. "brr"的元素放在 "arr"之后...编译成功但不运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24464765/