我想检查我的程序是否存在内存泄漏,并找到了这篇 Microsoft 文章。
我彻底遵循了这篇文章并添加了
#define CRTDBG_MAP_ALLOC
#include <stdlib.h>
#include <crtdbg.h>
和
_CrtDumpMemoryLeaks();
当程序退出时。
它会在我的输出窗口中正确转储所有内存泄漏信息,但问题是:
它不会打印内存泄漏所在的文件名和行号!
它在文章中说用#define _CRTDBG_MAP_ALLOC
它打印文件名和行号,但它不适合我。
我的输出看起来像这样
Detected memory leaks!
Dumping objects ->
{3456} normal block at 0x038F81E8, 560 bytes long.
Data: < A B> 00 00 00 00 00 00 10 41 00 00 00 FF 00 00 E6 42
{3447} normal block at 0x038F8170, 56 bytes long.
Data: < B ^ B > 80 42 90 03 10 02 5E 08 80 42 90 03 00 00 CD CD
{3440} normal block at 0x038F86B0, 840 bytes long.
Data: < A B> 00 00 00 00 00 00 10 41 00 00 00 FF 00 00 A8 42
...
所以我真的不能用那个......按 F4 去排队也不起作用。
请你帮助我好吗?