c - 使用 g++ 和 gcc 获取line

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

非常感谢!

最佳答案

这个问题是由 gcc 版本 5 引起的,该版本有一些 bug。更新到版本 6 有帮助。 – 购物车

关于c - 使用 g++ 和 gcc 获取line,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41212611/

相关文章:

c - GTK_WINDOW(window)->allow_shrink = TRUE 在 c 中是什么意思?

c - 我不能在 Clion 中使用 getline

static - 在 Mac OS X 上静态链接 libstdc++

c++ - 如何检测编译器何时发出错误

c - 如何在 Windows 上为我的 GTK 应用程序使用 Metacity 主题

c - 使用 Eclipse CDT 调试静态库

c - gcc - 迂腐的无法编译,ISO C90 禁止混合声明和代码 如何解决这个问题?

c - 将字符串文字的地址分配给指针

c - 优化 C 代码中的汇编代码冗余

c++ - wcin.imbue 和 UTF-8