我正在尝试创建并填充数组数组。这是我写的代码:
int b[4] = {100, 100, 200, 300};
int a[2][4];
int main(){
memcpy(a[0], b, sizeof(int));
printf("%i", a[0][2]);
我应该 200 ,但我得 0 ...我该如何解决?
答案 0 :(得分:2)
它应该是正确的b数组大小吗?
memcpy(a[0], b, sizeof(int) * 4);
答案 1 :(得分:2)
你只是从b复制一个int。您需要将所有b复制到[0]这样的
int b[4] = {100, 100, 200, 300};
int a[2][4];
int main(){
memcpy(a[0], b, sizeof(b));
printf("%i", a[0][2]);
}
答案 2 :(得分:1)
<强>替换强>
memcpy(a[0], b, sizeof(int));
<强>与强>
memcpy(a[0], b, sizeof(b));
<强>原因强>
您只是通过指定1个整数的大小来复制1个整数,即b中的第一个元素。但是如果你需要复制b中的所有元素,你需要指定所有元素的大小或者只是b的大小。