基于重载算法的内存泄漏检测和内存越界检测

1. 内存泄漏

1.1 简介

`内存泄漏`是当程序不正确地进行内存管理时出现的一种资源泄漏,表现为程序不再需要使用的内存空间并没有及时被释放掉。内存泄漏并非指物理内存的消失,而是在程序分配了某段内存后,由于设计错误,失去了对该段内存的控制,造成了内存的浪费.

1.2 危害

内存泄漏减少计算机可用内存,从而影响了计算机的性能。如果内存泄漏过于严重,整个操作系统、应用程序甚至会崩溃,计算机性能会大打折扣。但是,一般情况下,在现代操作系统中,当一个应用程序结束的时候,该应用程序所占用的内存会被操作系统自动地全部释放,因此,内存泄漏的后果往往不会很严重,甚至不会被察觉到。但是,当长时间运行程序或者设备内存较小时,内存泄漏的问题就不容忽视。作为程序员,我们有必要尽力避免内存泄漏,养成良好的编程习惯.

1.3 分类

内存泄漏尤其会发生在没有垃圾回收机制(Garbage collection)的编程语言,例如:C和C++,也就是说程序并不会自动实现内存管理。对于C和C++这两种语言,我们主要关心两种类型的内存泄漏:

堆内存泄漏:程序通过`malloc`,`realloc`,`new`等函数在堆空间中申请了一块内存,但是在使用完后并没有用`free`,`delete`等函数将所申请的内存的内存释放掉,导致相应的那块内存一直被占用。

系统资源泄漏:程序在使用系统分配的资源比如Bitmap,handle等之后,并没有用相应的函数释放掉,导致相应内存的占用和系统资源的浪费。

本次只针对堆内存泄漏提出自动检测的方法。

18423381-30fae428acd22fd4.png

源码下载地址:https://www.write-bug.com/article/106.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值