10

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

这些工具中的任何一个都可以被 C++11 信任吗?我大量使用唯一指针并且没有它们几乎没有制作任何新对象,因此无法理解泄漏的来源。

4

1 回答 1

9

如果您在 in 的堆栈上有一些全局对象或其他东西main(),它们不会在main()退出之前被销毁。

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

于 2013-01-27T14:47:04.440 回答