C 如何使用双指针从文本文件填充字符串数组?
我试图读取文件并使用指针将字符串保存在数组中,但遇到了问题。有人能给我一些建议吗C 如何使用双指针从文本文件填充字符串数组?,c,pointers,readfile,double-pointer,C,Pointers,Readfile,Double Pointer,我试图读取文件并使用指针将字符串保存在数组中,但遇到了问题。有人能给我一些建议吗 // 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<ma
// 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=(char**)malloc(sizeof(char*)*maxLines);
...
文件*fp;
fp=fopen(文件名,“r”);//此处已存在文件名
int i=0,j=0;
while(i在第二个while循环中,用“&&&”替换“| |”
本例中的循环即使在到达maxlines之后也会继续执行。可能看一看,也可以看一看。您分配了一个指针数组(每行一个指针)但是没有为任何一行分配内存。你可以先将每一行读入一个大缓冲区,这样你就知道它有多长,然后分配足够的内存并复制它。这个问题,或者它的一个变体,一天会被问多次。请在问之前搜索!我不知道它是否解释了segfault,但在第二个循环中I
应该是j
。我犯了一个愚蠢的错误。谢谢。我仍然会遇到段错误tho:(现在你在fgets中使用j,使用j这个愚蠢的问题和另一个风向标问题解决了。谢谢!