这个问题肯定与此相关,它的答案是我基于我的功能。
char *get_next_line(FILE *fp) {
char ch = 0;
int CUR_MAX = 4095;
char *buffer = (char*) malloc(sizeof(char) * CUR_MAX); // allocate buffer.
char *temp = (char*) malloc(sizeof(char) * CUR_MAX); // allocate buffer.
int count = 0;
int length = 0;
while ((ch != '\n')) {
if (ch == '\377') { return NULL; }
if(count ==CUR_MAX) {
CUR_MAX *= 2;
count = 0;
if ((temp = realloc(buffer, CUR_MAX)) != NULL) {
buffer = temp;
free(temp);
}
}
ch = getc(fp);
buffer[length] = ch;
length++;
count++;
}
出于某种原因,在读取非常大的字符串时,我会遇到:
检测到 glibc - realloc() 下一个大小无效。
我在这里缺少什么吗?
谢谢!