我正在尝试使用memcpy将1D数组复制到2D数组的特定行。我尝试在OnlineGDB上编译以下代码,但其打印垃圾值,然后给出分段错误。
'generator' object is not callable
有人可以解释使用memcpy进行编码的正确方法是什么吗?
答案 0 :(得分:0)
问题出在内部循环(i<5
)中。
这是一个修复程序(已删除硬编码)。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void)
{
int arr1[] = {34, 45, 89, 123, 56};
int arr2[2][sizeof arr1 / sizeof *arr1];
memcpy(arr2[0], arr1, sizeof arr1);
memcpy(arr2[1], arr1, sizeof arr1);
for (int i = 0; i < sizeof arr2 / sizeof *arr2; i++) {
for (int j = 0; j < sizeof arr2[i] / sizeof *arr2[i]; j++) {
printf("%d ", arr2[i][j]);
}
printf("\n");
}
return 0;
}