内存泄漏的几种情况

1.new,malloc后没有delete,free

2.创建内核对象(比如CreateFile,CreateMutex,CreateThread),后没有释放内核对象句柄.

3.创建内存映射文件,CreateFileMapping,MapViewOfFile后没有CloseHandle(),UnMapviewofFile

4.创建GDI对象后,比如LoadIcon,LoadImage,CreateImageList等等,没有Destroy掉

5.创建DC后,比如GetDC(), 没有释放DC句柄

6.保留虚拟地址空间 VirtualAlloc(),然后提交物理存储器后,没有释放掉

注意:

1,当一个分配了内存的对象,把它的地址赋值给另一个对象时,并不会造成内存泄漏。如下面的情况:

A*a=new A;

A* b=a;

delete a;

只是单纯的把a的指针地址赋给了b而已,当delete a后,b也同样被释放掉了,因为它们是相同的一块内存,这个时候b也不能用了,要注意。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值