Getline与g ++和gcc

时间:2016-12-18 20:35:15

标签: c gcc g++ malloc getline

抱歉,如果它已经在某处,我找不到它。

我的简单程序是:

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块内存以及如何释放另一块内存。

非常感谢!

1 个答案:

答案 0 :(得分:0)

此问题是由gcc版本5引起的,该版本有点问题。更新版本6有所帮助。 –购物车