c++中追踪程序是否有内存泄漏

在main()函数中加上如下代码:

void main()
{
	//用来追踪是否有内存泄漏
	int tmpDbgFlag = _CrtSetDbgFlag(_CRTDBG_REPORT_FLAG); //得到当前的CrtDbgFlag状态
	tmpDbgFlag |= _CRTDBG_LEAK_CHECK_DF;                  //打开内存泄漏自动检查开关
	_CrtSetDbgFlag(tmpDbgFlag);                           //设置CRT调试堆的新状态

	int * p = new int[4];
	return;
}
在debug窗口中会进行如下提示:

Detected memory leaks!
Dumping objects ->
{131} normal block at 0x00384978, 16 bytes long.
 Data: <                > CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD 
Object dump complete.


关于CRT调试堆的详细介绍:http://blog.csdn.net/ugg/article/details/1585639(没怎么看懂~~)

posted @ 2012-03-05 14:53  刘军newhand_liu  阅读(270)  评论(0编辑  收藏  举报