如何在while循环中重新分配a * char []?

时间:2015-06-04 21:53:17

标签: c pointers char malloc realloc

让我们考虑一下这个char指针数组:

char *lesMots[10];

在while循环中使用:

while(fgets(buffer, TAILLE_BUFFER, fichier)!=NULL){
    token = strtok(buffer, s);
         while( token != NULL && token[0]!=13) 
        {               
            token[strlen(token)]='\0';
            *(lesMots + ligne)=strdup(token);
            ligne++;
            token = strtok(NULL, s);
        }
}

我正在尝试重新分配* lesMots [10]的内存,因为如果大小不等于或大于21,它会在以后崩溃。

我正在考虑在ligne> = 10时重新分配数组,但它失败了,这就是为什么我不向你展示我的malloc和realloc测试。谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

如果您需要增加数组的大小,请使用动态分配的数组而不是静态定义的数组。

而不是:

char *lesMots[10];

使用

char **lesMots = malloc(10*sizeof(*lesMots));