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

Raj*_*eer 10 c++ memory-leaks c++11 visual-studio-2012

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

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

Ali*_*Ali 9

如果你有一些全局对象或堆栈中的东西main(),它们将不会在main()退出之前被销毁.

如果这些对象执行动态内存分配并且您_CrtDumpMemoryLeaks()在最后调用main(),则仍会将该内存视为"泄露".