[英]Segmentation fault while copying a string to the memory allocated array
以下是我正在練習的程序;
int main() {
int i = 0;
char **grid = (char **) malloc(5*sizeof(int));
for (i = 0 ; i < 5 ; i++)
grid[i] = (char *) malloc(6);
strcpy(grid[0], "eabcd");
strcpy(grid[1], "fghij");
strcpy(grid[2], "olkmn");
strcpy(grid[3], "trpqs");
strcpy(grid[4], "xywuv"); /*Segmentation Fault at this line*/
return 0;
}
我在strcpy(grid[4], "xywuv");
行遇到分段錯誤strcpy(grid[4], "xywuv");
. 可能是什么原因? 我已將數組分配為 5 個字符串(行),每個字符串(行)6 個字符(列)。
您在第 3 行分配了錯誤的類型
char **grid = (char **) malloc(5*sizeof(int));
應該是char **grid = (char **) malloc(5*sizeof(char*));
這是因為您正在聲明字符串數組。 因此,malloc 應該是char* (string / character pointer)
如果您嘗試聲明二維整數數組,也一樣。 這將是
int **grid = (int **) malloc(5*sizeof(int*));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.