基于C或者C++编程的人,知道在使用指针,尤其是基于指针的链表、队列、树等数据结构时,常常会用malloc或者new分配内存,而这些动态分配的内存在使用完了后,必须手工(即显式调用free或者delete)去释放它们,否则容易引起内存泄漏。内存泄漏的后果就是程序退出,而程序占用的这部分内存仍然没有归还给操作系统,对于一些常年不关机的应用,如服务器,就会不断消耗计算机内存,最后使得机器运行效率越来越低。
如何发现上述问题呢?对于小程序,当然可以人工排查错误。但是对于上万行的程序,人工排查工作量太大,这时候可以利用一些插件工具或库函数,其中VS就有CRT(C run-time library)库,详情见下。
For visual studio 2012, please refer to:
http://msdn.microsoft.com/en-us/library/x98tx3cf.aspx