我正在尝试使用_CrtDumpMemoryLeaks()来显示程序中的内存泄漏。
但除了在没有内存泄漏的情况下返回0以及在有泄漏的情况下返回0时它不会显示任何内容。
这里的link显示输出应该是:
Detected memory leaks!
Dumping objects ->
D:\VisualC++\CodeGuru\MemoryLeak\MemoryLeak.cpp(67) : {60}
normal block at 0x00324818, 4 bytes long.
Data: <, > 2C 00 00 00
Object dump complete.
任何人都可以建议使用此功能的正确方法。
答案 0 :(得分:17)
从以下link下载示例。您必须设置以下参数以将输出定向到控制台。
// Send all reports to STDOUT
_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 );
答案 1 :(得分:3)
在搜索为什么它在我的代码中不起作用后,我找到了以下几点: