我正在尝试使用malloc和realloc增加2D数组。我遇到了分段错误。
以下是我创建标签的方法:
char **tab2D = creerTab2D(taillex, tailley);
char** creerTab2D(int taillex, int tailley) {
char **tab2D = malloc( sizeof(char*) * taillex);
for (int i = 0; i < taillex; i++) {
tab2D[i] = creerTab1D(tailley);
}
return tab2D;
}
以下是我如何将行数增加1:
(*taillex)++;
*tab = (char**) realloc(*tab, *taillex * sizeof(char*)) ;
if (*tab == NULL) { printf("Erreur lors du realloc\n"); return;}
printf("%d", *taillex);
*tab[*taillex] = malloc(*tailley * sizeof(char)); // Here is the bad access (segmentation fault)
for (int i = 0; i < *tailley; i++) {
(*tab)[*taillex][i] = '*';
printf("%c", (*tab)[*taillex][i]);
}
这段代码在这个原型的函数内部(太大了,不能粘贴):
void insererCharDansTab2D(char ***tab, int *taillex, int *tailley, int posx, int posy, char c)
我写了一条评论,其中出现了细分错误。谢谢伙伴们!