【问题标题】:C++ valgrind More allocs than frees with no leaksC++ valgrind 分配比释放更多,没有泄漏
【发布时间】:2016-06-03 18:59:37
【问题描述】:

我四处寻找,但似乎没有答案,所以我决定在这里问。所以我使用 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

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

【问题讨论】:

    标签: c++ memory-leaks valgrind


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      不是泄漏,它只是意味着某些内存块在终止时仍然可以访问。要查找真正的内存泄漏,请查看“肯定丢失”和“间接丢失”

      看到这个帖子:Still Reachable Leak detected by Valgrind

      【讨论】:

      • 这是否回答了您的问题?
      猜你喜欢
      • 2018-06-04
      • 2012-11-26
      • 1970-01-01
      • 1970-01-01
      • 2017-07-17
      • 1970-01-01
      • 2021-12-25
      • 2020-03-31
      • 2016-03-15
      相关资源
      最近更新 更多