#include <stdio.h>
int main(){
int a[4];
int b[4],i;
a[0] = 4;
a[1] = 3;
a[2] = 2;
a[3] = 1;
memcpy(&b, &a, sizeof(a));
for (i = 0; i < 4; i++){
printf("b[%d]:%d",i,b[i]);
}
printf("%d",sizeof(b));
}
答案:
b[0]:4b[1]:3b[2]:2b[3]:116
Exited: ExitFailure 2
我得到了正确的答案。但是报出了异常 Exited: ExitFailure 2。
使用memcpy复制数组数据的方式是否有误?
return 0;
。 - Mysticialmemcpy
有些错误,你不需要取地址符(&
),因为数组类型与指针类型相容,所以memcpy(b, a, sizeof(a));
就足够了。 - Some programmer dude&
是可选的。我通常会省略它。但是对于指针,情况显然不同。 - Mysticial