使用memcpy将1D阵列复制到2D阵列的一行

时间:2019-12-09 05:46:38

标签: c arrays

我正在尝试使用memcpy将1D数组复制到2D数组的特定行。我尝试在OnlineGDB上编译以下代码,但其打印垃圾值,然后给出分段错误。

'generator' object is not callable

有人可以解释使用memcpy进行编码的正确方法是什么吗?

1 个答案:

答案 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;
}
相关问题