VS2012,C ++ 11和内存泄漏检测(VLD与CRTDBG)

时间:2013-01-27 14:04:11

标签: c++ c++11 visual-studio-2012 memory-leaks

我在CRTDBG中检测到了一堆内存泄漏,但发现它们很难跟踪,因此安装了Visual Leak Detection。这显示了一致的泄漏数量,我追溯到没有虚拟析构函数的抽象类。我解决了这个问题,VLD现在在我的应用程序中没有显示内存泄漏,但是CRTDBG仍然会这样做,并且它一直显示大约100个左右的泄漏。

C ++ 11可以信任这些工具吗?我大量使用独特的指针,没有它们几乎没有任何新的对象,所以无法理解泄漏的来源。

1 个答案:

答案 0 :(得分:9)

如果main()中有一些全局对象或堆栈中的某些内容,则在main()退出之前不会销毁它们。

如果这些对象进行动态内存分配,并且在_CrtDumpMemoryLeaks()的最后调用main(),您仍会将该内存视为“泄露”。