功能:
用于检测c++程序的内存泄露。
原理:
其实很简单,就是通过函数的重载机制,捕获应用程序的new, new[] , delete , delete[], malloc,calloc,free等内存操作函数。
特点:
由于在检测的过程中,需要记录用户程序内存分配信息,所以工具本身必须进行内存动态分配。为了提高内存分配效率,程序实现了两个链表。
1、空闲链表,其实就是一个简单的内存池
2、当前正在保存内存信息的链表
不足:
1、只是在vc2005上测试通过,没有在其他平台上测试过
2、不支持多线程(后续有可能支持)
3、保存当前内存分配信息的链表,存在next字段的内存开销。
源代码:
1、头文件
2、源文件