gpt4 book ai didi

c++ - 当内存分配数不总是相同时如何检测内存泄漏?

转载 作者:行者123 更新时间:2023-11-30 02:23:50 24 4
gpt4 key购买 nike

我的程序出现了这样的内存泄漏(55 字节)。我正在使用 C++、MFC、Visual Studio 2010。

检测到内存泄漏!{13497} 0x0E44C248 处的正常 block ,55 字节长。数据:44 3A 5C 46 44 41 53....

问题是,内存分配号“13497”并不总是相同的。如果我再次运行程序,它总是不同的数字。我想找到我在退出前没有释放内存的地方,用_crtBreakAlloc,但似乎不可能在内存分配号上中断。我也使用了 _CrtSetDbgFlag 和 _CrtDumpMemoryLeaks,但效果也不佳。

在这种情况下有什么方法可以检测到内存泄漏吗?

谢谢。

最佳答案

您可以使用像 cppcheck 这样的静态分析器,或者如 Joe 所说,重新映射运算符 new

我开发了一些您可以使用的内存泄漏实用程序:

https://github.com/check69/Utils/blob/master/leaks.cpp

https://github.com/check69/Utils/blob/master/leaks.h

有一些 visual studio 指令可以获取控制台输出中的泄漏,以便更轻松地进行调试。

PS:我会把这个作为评论放在joe post,但是我需要50分才能发表评论。

关于c++ - 当内存分配数不总是相同时如何检测内存泄漏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45666714/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com