我希望在DEBUG模式下检查内存泄漏。我使用Windows,在此工作中,使用函数_CrtDumpMemoryLeaks。
现在,为什么这段代码会发现内存泄漏呢?
现在,为什么这段代码会发现内存泄漏呢?
#include <Windows.h>
#include <iostream>
int main()
{
if(_CrtDumpMemoryLeaks() == TRUE)
std::cerr << "MEMORY LEAK!" << std::endl;
return 0;
}
编辑:
我添加了此代码以将输出直接定向到控制台:
_CrtSetReportMode( _CRT_WARN, _CRTDBG_MODE_FILE );
_CrtSetReportFile( _CRT_WARN, _CRTDBG_FILE_STDOUT );
_CrtSetReportMode( _CRT_ERROR, _CRTDBG_MODE_FILE );
_CrtSetReportFile( _CRT_ERROR, _CRTDBG_FILE_STDOUT );
_CrtSetReportMode( _CRT_ASSERT, _CRTDBG_MODE_FILE );
_CrtSetReportFile( _CRT_ASSERT, _CRTDBG_FILE_STDOUT );
输出结果为: