我有一个函数可以查找文本文件中的行数并返回这些行。我必须动态调整数组的大小。但是,当我打印它时,它只显示缓冲区内每一行的最后几个字母。我是 C 新手。这是代码的主要部分:
char * foo( char **buffer, FILE * infile )
...
int buffSizer = 10;
*buffer = calloc( buffSizer, 1);
do {
char * result = fgets(*buffer, buffSizer, infile);
if (result == NULL){
free(*buffer);
return(NULL);
}
char * ptr = strchr(*buffer, '\n');
if (ptr){
return(*buffer);
}
buffSiz = buffSizer * 2;
*buffer = realloc(*buffer, buffSizer);
} while (1);