<分区>
目前我有下面的代码。 char **arr
初始设置为 NULL
。然后它在从文件中读取时存储在单词中。我只是随机选择了一个像 5000
这样的大数字,因为我不明白如何正确地做 malloc
业务,即使在网上看了并尝试学习之后也是如此。
此外,当我尝试free
char **arr
(我代码的最后一部分)时,有时我会遇到段错误
,有时 abort traps
等。如果有人能告诉我如何正确地做这样的事情,我将不胜感激!谢谢!
char **arr = NULL
File *fp = fopen("file.txt", "r")
char string[3000];
char counter = 0;
//to store
while(fscanf(fp, "%s", string)!=EOF){
arr = realloc(arr, 5000); //arbitrarily used a large number like 5000
arr[counter] = malloc(5000);
strcpy(arr[counter++], string);
}
//to free
for(i=0; i<counter; i++){
free(arr[i])
}
free(arr);