the*_*tna 6 memory debugging valgrind memory-leaks memory-management
虽然搜索valgrind仍然可以访问,但有些人说这不是问题.我们不需要解决它.有人说它需要修复.如果有人可以明确地告诉我这仍然可以达到的逻辑,我会更好.是否必须修复此问题?
[编辑]
我有我的C程序的valgrind输出.我需要修复它吗?
LEAK SUMMARY:
==27333== definitely lost: 0 bytes in 0 blocks.
==27333== possibly lost: 0 bytes in 0 blocks.
==27333== still reachable: 96 bytes in 12 blocks.
==27333== suppressed: 0 bytes in 0 blocks.
Run Code Online (Sandbox Code Playgroud)
这取决于."仍然可以访问"意味着你在退出之前没有释放一块内存,但是有一个指向它的指针.
在C++程序中,这意味着某些对象可能不是deleted,因此它的析构函数可能没有被运行,因此说某些数据可能没有被保存到磁盘上,例如可能没有采取其他一些操作因此你的程序可能会产生意外行为.
但是C程序中没有析构函数,所以你的程序不能依赖于它.同时释放内存需要一些时间,因此通过在退出时不释放内存可以节省一些时间 - 程序将更快地退出(这对于具有大量数据的程序来说可能很重要).
因此IMO如果您的C程序"仍然可以访问"阻塞它不是问题,但这表明程序中的某些代码不会释放内存,因此在重用该代码时可能会出现错误.