我正在尝试将一些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
并且不要泄漏内存。