抱歉,如果它已经在某个地方,我没有找到它。
我的简单程序是:
int main(){
size_t n = 0;
char *line = NULL;
getline(&line,&n,stdin);
free(line);
return 0;
}
Valgrind 输出:
==7300== HEAP SUMMARY:
==7300== in use at exit: 72,704 bytes in 1 blocks
==7300== total heap usage: 2 allocs, 1 frees, 72,824 bytes allocated
==7300==
我需要使用g++ -g -o -Wall -pedantic
进行编译。当我使用 gcc
编译时,问题消失了。
我想问一下为什么getline分配2 block 内存以及如何释放另一 block 内存。
非常感谢!
最佳答案
这个问题是由 gcc 版本 5 引起的,该版本有一些 bug。更新到版本 6 有帮助。 – 购物车
关于c - 使用 g++ 和 gcc 获取line,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41212611/