在C中重新分配2D数组

时间:2017-04-04 16:09:21

标签: c arrays malloc realloc

我正在尝试使用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)

我写了一条评论,其中出现了细分错误。谢谢伙伴们!

0 个答案:

没有答案