如何在 while 循环中重新分配 *char[]?
How to realloc a *char[] inside a while loop?
让我们考虑一下这个字符指针数组:
char *lesMots[10];
在 while 循环中使用:
while(fgets(buffer, TAILLE_BUFFER, fichier)!=NULL){
token = strtok(buffer, s);
while( token != NULL && token[0]!=13)
{
token[strlen(token)]='[=11=]';
*(lesMots + ligne)=strdup(token);
ligne++;
token = strtok(NULL, s);
}
}
我正在尝试重新分配 *lesMots[10] 的内存,因为如果大小不等于或大于 21,它稍后会崩溃。
我正在考虑在 ligne>=10 时重新分配数组,但它失败了,这就是为什么我没有向您展示我的 malloc 和 realloc 测试。谢谢你帮助我。
如果您需要能够增加数组的大小,请使用动态分配的数组而不是静态定义的数组。
而不是:
char *lesMots[10];
使用
char **lesMots = malloc(10*sizeof(*lesMots));
让我们考虑一下这个字符指针数组:
char *lesMots[10];
在 while 循环中使用:
while(fgets(buffer, TAILLE_BUFFER, fichier)!=NULL){
token = strtok(buffer, s);
while( token != NULL && token[0]!=13)
{
token[strlen(token)]='[=11=]';
*(lesMots + ligne)=strdup(token);
ligne++;
token = strtok(NULL, s);
}
}
我正在尝试重新分配 *lesMots[10] 的内存,因为如果大小不等于或大于 21,它稍后会崩溃。
我正在考虑在 ligne>=10 时重新分配数组,但它失败了,这就是为什么我没有向您展示我的 malloc 和 realloc 测试。谢谢你帮助我。
如果您需要能够增加数组的大小,请使用动态分配的数组而不是静态定义的数组。
而不是:
char *lesMots[10];
使用
char **lesMots = malloc(10*sizeof(*lesMots));