#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));
}
Run Code Online (Sandbox Code Playgroud)
b[0]:4b[1]:3b[2]:2b[3]:116
Exited: ExitFailure 2
Run Code Online (Sandbox Code Playgroud)
我得到了正确的答案.但是获得Exited:ExitFailure 2的异常.
这种使用memcpy复制数组数据的方法是错误的吗?
尝试return 0;在最后添加一个main().
省略返回值可能导致函数返回堆栈垃圾.(那不是0)
因此,测试应用程序/脚本在看到非零返回值时会抱怨失败.
在C99之前,省略该return语句是技术上未定义的行为.从C99开始,0如果省略则默认为.
更多细节在这里:为什么main不会在这里返回0?