内存泄漏

12 篇文章 0 订阅

概念:
内存泄漏是指程序猿自己从堆上申请空间,没有释放
后果:

  • 程序运行后置之不理,并且随着时间的流失消耗越来越多的内存(比如服务器上的后台任务,尤其是嵌入式系统中的后台任务,这些任务可能被运行后很多年内都置之不理);
  • 新的内存被频繁地分配,比如当显示电脑游戏或动画视频画面时;
  • 程序能够请求未被释放的内存(比如共享内存),甚至是在程序终止的时候;
  • 泄漏在操作系统内部发生;
  • 泄漏在系统关键驱动中发生;
  • 内存非常有限,比如在嵌入式系统或便携设备中;
  • 当运行于一个终止时内存并不自动释放的操作系统(比如AmigaOS)之上,而且一旦丢失只能通过重启来恢复。
    检测的方法:
    1.调用函数int _CrtCheckMemory( void );确定分配在调试堆得内存块的完整性(仅限调试版本)
    返回值: 成功, 返回true;失败,返回false
    2.在申请空间完成后,记得释放

释放时要注意匹配使用:malloc/free,new/delete,new T[]/delete []T

解决方法:
1.养成良好的变成习惯,申请后记得释放;
2.使用智能指针管理系统;
3.利用内存池;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值