似乎只要有静态对象,_CrtDumpMemoryLeaks 就会返回误报,声称它正在泄漏内存。我知道这是因为它们直到 main()(或 WinMain)函数之后才被销毁。但是有什么办法可以避免这种情况吗?我用的是VS2008。
最佳答案
我发现如果你告诉它在程序终止后自动检查内存,它允许所有静态对象都被计算在内。我正在使用 log4cxx 和 boost 在静态 block 中进行大量分配,这修复了我的“误报”...
在 main() 开头的某处添加以下行,而不是调用 _CrtDumpMemoryLeaks:
_CrtSetDbgFlag ( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF );
有关用法和宏的更多详细信息,请参阅 MSDN 文章:
http://msdn.microsoft.com/en-us/library/5at7yxcs(v=vs.71).aspx
关于c++ - 如何忽略来自 _CrtDumpMemoryLeaks 的误报内存泄漏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2323458/