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

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


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

最佳答案

strcpy(tabB [indexB],tabA [indexA])根本不起作用,程序获取
  坠毁


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


使用2D数组作为tabB静态地分配内存给char tabB[SIZE1][SIZE2] = {{0}};,或者动态地作为for(i = 0; i < SIZE; ++i) tabB[i] = malloc(...);或使用strdup分配内存。如果是动态分配,请确保您free并且不要泄漏内存。

09-27 06:02