C++ valgrind 比释放更多的分配没有泄漏

标签 c++ memory-leaks valgrind

我四处搜索,但似乎没有答案,所以我决定在这里问一下。所以我使用 valgrind 检查我的程序,这是结果

==24810== HEAP SUMMARY:
==24810==     in use at exit: 1,478 bytes in 30 blocks
==24810==   total heap usage: 50 allocs, 20 frees, 43078 bytes allocated
==24810== 
==24810== LEAK SUMMARY:
==24810==    definitely lost: 0 bytes in 0 blocks
==24810==    indirectly lost: 0 bytes in 0 blocks
==24810==      possibly lost: 0 bytes in 0 blocks
==24810==    still reachable: 1,478 bytes in 30 blocks
==24810==         suppressed: 0 bytes in 0 blocks

这是泄漏吗? 如果是这样,可能是什么原因?

最佳答案

这不是真正的泄漏,因为分配的 30 个额外 block 仍然可以访问。看来您未能在程序运行结束时释放某些结构。请注意,运行时库有时会在末尾留下一些已分配的对象,但这不像是其中一种情况。

关于C++ valgrind 比释放更多的分配没有泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37621654/

相关文章:

node.js - NodeJS/ExpressJS 内存泄漏

C++ char[] 内存泄漏?

c++ - 动态分配的对象生产者

c++ - 使用 vector 时出现奇怪的运行时错误

c++ - Valgrind 在 sqlite3_step 中报告未初始化的值

c++ - 为什么标准库的 move 构造函数和 move 赋值运算符会使对象处于未指定状态?

c++ - 带有 SOIL 的 OpenGL 纹理

c++ - 函数不能嵌套,那么在C++中如何实现呢?

c++ - 如何在共享内存中存储字符串数据类型?

c - 使用 Valgrind 调试我的程序