【发布时间】:2016-11-25 18:46:59
【问题描述】:
我最近一直在自学 NCurses,我决定在 valgrind 中测试我的代码以检查是否存在内存泄漏。这少量代码给出了与我的程序相同的错误结果,我想知道是否有人知道它有什么问题或可以指导我找到答案。
#include <ncurses.h>
int main()
{
initscr();
WINDOW *win = newwin(0,0,10,10);
delwin(win);
endwin();
return 0;
}
==20986== Memcheck,内存错误检测器
==20986== 版权所有 (C) 2002-2013 和 GNU GPL,由 Julian Seward 等人提供。
==20986== 使用 Valgrind-3.10.1 和 LibVEX;使用 -h 重新运行以获取版权信息
==20986== 命令:./a.out
==20986==
==20986==
==20986== 堆摘要:
==20986== 在退出时使用:193 个块中的 281,089 个字节
==20986== 总堆使用量:248 个分配,55 个释放,353,425 个字节分配
==20986==
==20986== 泄漏摘要:
==20986== 肯定丢失:0 个块中的 0 个字节
==20986== 间接丢失:0 个块中的 0 个字节
==20986== 可能丢失:0 个块中的 0 个字节
==20986== 仍然可以访问:193 个块中的 281,089 个字节
==20986== 抑制:0 个块中的 0 个字节
==20986== 使用 --leak-check=full 重新运行以查看泄漏内存的详细信息
==20986==
==20986== 对于检测到和抑制的错误计数,重新运行:-v
==20986== 错误摘要:来自 0 个上下文的 0 个错误(已抑制:来自 0 的 0 个)
感谢您的宝贵时间。
【问题讨论】:
-
好的,valgrind 告诉你有 0 个字节被泄露,还有 281089 个字节仍然被分配,但显然没有被泄露。这到底是怎么回事?
标签: c++ memory memory-leaks ncurses