如何使用双指针从文本文件中填充字符串数组?

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 循环中替换“||”用“&&”。

即使达到最大行数,本例中的循环仍会继续执行。