如何使用双指针从文本文件中填充字符串数组?
How do I fill a string array from a textfile using double pointers?
我正在尝试读取文件并使用指针将字符串保存在数组中,但我遇到了问题。有人可以给我一些建议吗?
// not allowed to change these two rows
char **Lines;
Lines = (char**)malloc(sizeof(char*)*maxLines);
...
FILE *fp;
fp = fopen(fileName, "r"); // fileName already exists here
int i=0, j=0;
while(i<maxLines){
Lines[i] = (char*)malloc(maxLength * sizeof(char));
i++;
}
// No string will be longer than "maxLenght" so no buffer is used.
while(fgets(Lines[j] , maxLength, (FILE*) fp) != NULL && j < maxLines)
{
j++
}
我想用文件中的每个字符串填充 "Lines"。我不断收到分段错误。
谢谢!
在你的第二个 while 循环中替换“||”用“&&”。
即使达到最大行数,本例中的循环仍会继续执行。
我正在尝试读取文件并使用指针将字符串保存在数组中,但我遇到了问题。有人可以给我一些建议吗?
// not allowed to change these two rows
char **Lines;
Lines = (char**)malloc(sizeof(char*)*maxLines);
...
FILE *fp;
fp = fopen(fileName, "r"); // fileName already exists here
int i=0, j=0;
while(i<maxLines){
Lines[i] = (char*)malloc(maxLength * sizeof(char));
i++;
}
// No string will be longer than "maxLenght" so no buffer is used.
while(fgets(Lines[j] , maxLength, (FILE*) fp) != NULL && j < maxLines)
{
j++
}
我想用文件中的每个字符串填充 "Lines"。我不断收到分段错误。 谢谢!
在你的第二个 while 循环中替换“||”用“&&”。
即使达到最大行数,本例中的循环仍会继续执行。