以下块导致内存泄漏:
FILE *fp = fopen(path, "r");
char *line = NULL;
size_t len = 0;
ssize_t read = -1;
while ((read = getline(&line, &len, fp)) != -1) {
/*Do something*/
}
1个块中的120个字节肯定会丢失......
...getline (getline.c:34)
我可以通过添加一个来解决这个问题free():
while ((read = getline(&line, &len, fp)) != -1) {
/*Do something*/
}
free(line);
我的问题是:为什么在失败时getline分配内存?line为什么我不需要free(line)每次来电getline?