自定义内存检测原理及方案

在项目开发中,或多或少都会遇到一些内存泄露的问题,今天就来总结下检测内存泄露的原理及其方法
1 将使用的系统的动态申请/释放内存的函数重新重载实现一遍,如new、delete、malloc、free等等
2 创建一个链表来保存申请/释放信息.
3 在需要动态申请内存时使用自己重载后的申请函数。申请函数中记录下申请的地址,
 内存大小,然后和一些关键属性,如文件名、函数名、函数、行号等等组成一个列表节点 
 然后,存入链表中(链表推荐使用哈希表)
4 在需要释放内存时使用自己重载后的释放函数,根据需要释放的内存地址为key,找到链表中的元素节点从链表中删除。
5 当系统退出时,如果链表中还有元素,则说明程序存在内存泄露.此时打印每个元素对应出来的属性
 (文件名、函数名、函数、行号)等等来定位内存泄露的地方,然后分析代码在合适的地方释放内存即可。
    
以上就是总结的内存检测方法!

你可能感兴趣的:(Qt,C/C++)