在C中复制2D数组

时间:2016-05-08 08:53:54

标签: c arrays copy 2d copying

我正在尝试将一些2D字符串数组复制到另一个字符串中。 我有2个看起来像这样的数组:

char *tabA[SIZE];
char *tabB[SIZE];

我想将tabA[indexA]复制到tabB[indexB],但strcpy(tabB[indexB], tabA[indexA])根本不起作用,程序崩溃(但编译器不会返回任何错误)。

3 个答案:

答案 0 :(得分:1)

  

strcpy(tabB [indexB],tabA [indexA])根本不起作用,程序得到   应声

可能是因为tabB[indexB]未初始化并包含NULL或无效指针。

<强>解决方案
使用二维数组tabB或动态地char tabB[SIZE1][SIZE2] = Project Structure, Code and File Manager, all images are placed directly in the "Art" folder;或使用for(i = 0; i < SIZE; ++i) tabB[i] = malloc(...);将内存静态分配到strdup。如果是动态分配,请确保free并且不要泄漏内存。

答案 1 :(得分:1)

我使用Box中的public static void random(){ Random r = new Random(); char c = (char)(r.nextInt(26) + 'A'); System.out.print(c); } ,原型如下:

memcpy
  

memcpy()函数将n个字节从内存区域src复制到内存   area dest。

有关详细信息,请使用终端上的string.h命令阅读void *memcpy(void *dest, const void *src, size_t n); 手册。

memcpy

答案 2 :(得分:0)

tabB[indexB] = strdup(tabA[indexA]);

完美无缺:)