在写VC的程序经常发现有内存出错的情况,运行结束之后,就会有报告是否内存出现泄漏情况,如下面所示:
像这样情况,其实有还是可以找出来是在那里创建的。不过,并不是报告出来的,都是真实的内存泄漏。
要仔细分析,才能作出决定。
因此,就需要找到这块内存是在那里分配的。可以在程序的入口处加入下面的函数:
_CrtSetBreakAlloc(223);
这个函数,就设置了当分配上面223那块内存时,就中断,然后就可以查看调用栈,知道那里出错了。
不过,使用这个来判断,就要仔细地分析了,由于内存的分配是动态的,并不能保证每次分配内存的号码是一样的。