内存泄露的解决办法

什么是内存泄漏(memory leak)?
指由于疏忽或错误造成程序未能释放已经不再使用的内存的情况。内存泄漏并非指内存在物理上的消失,而是应用程序分配某段内存后,由于设计错误,失去了对该段内存的控制,因而造成了内存的浪费。

操作方法

  • 01

    case 1.new/delete成对使用 case 2.正确的清理嵌套的对象指针。 解决办法: a、在外部函数分配的堆内存,不要在调用函数里面释放,而应该在外部函数释放。 b、尽量在构造函数中分配内存。 c、在基类/继承类中分管各自的内存。

  • 02

    case 3 释放对象数组时,要使用delete [] a、对单个对象、基本类型的变量,用delete; b、对基本类型数组,采用delete,delete[]均可; c、对自定义的对象的所组成的对象数组,一定要采用delete [].

  • 03

    case 4 指向对象的指针构成的数组,必须用户自己调用delete。 for example: Point **pPtrAry = new Point*[10]; // 循环为每个指针分配一个Point对象; int i = 0; for (; i < 10; ++i) {  pPtrAry[i] = new Point(i, i, "Green");  } // 下面语句并没有释放10个Point对象,释放的只是他们的指针所组成的数组 // 占用的10*sizeof(Point*) 空间,造成了内存泄露 // (180 = 10*sizeof(Point) + 10* 6; (6= sizeof("Green")))// delete []pPtrAry; // 正确的方法: for (i = 0; i < 10; ++i) {  delete pPtrAry[i]; } delete []pPtrAry; // 或者delete pPtrAry;

  • 04

    case 5 对于有指针对象的类,必须有显示的拷贝构造函数。

  • 05

    case 6 必要的重载赋值运算符。

  • 06

    case 7 基类的析构函数定义为虚函数。

  • 07

    这里主要存在基类指针指向派生类的情况。如果析构函数定义为虚函数,则释放基类指针时,如果该指针指向一个派生类,则会先调用派生类的析构函数,再调用基类的析构函数(不管是不是虚函数,派生类的对象析构的时候,都会先调用派生类的析构函数,再调用基类的析构函数)。

  • 08

    最后以下是怎样避免内存泄露: 良好的编码习惯,尽量在涉及内存的程序段,检测出内存泄露。当程式稳定之后,在来检测内存泄露时,无疑增加了排除的困难和复杂度。使用了内存分配的函数,要记得要使用其想用的函数释放掉,一旦使用完毕。

(0)

相关推荐

  • 电脑很卡 系统提示内存不足的解决办法

    电脑卡得不行,软件运行速度超慢,系统提示内存不足,这时该怎么办呢? 我经历了惨痛的教训后,终于痛下前非,整理出了一些优化加速电脑,缓解内存不足的相关措施,仅供参考。 希望能够帮到大家吧~ 关闭没必要的 ...

  • 360浏览器占用内存过高解决办法

    说到360安全浏览器,很多人都是又爱又恨,一方面方便,另一方面有老是提醒内存占用过高,小编也是经常遇到,解决的方法网上有很多,不过我自己试了试,都是治标不治本的,下面为大家分析一下问题原因以及360浏 ...

  • 电脑提示计算机内存不足的解决办法

    电脑提示计算机内存不足的解决办法 下面是小编给大家介绍电脑提示计算机内存不足的解决办法?希望对您有所帮助! 系统,Windows7 旗舰版 内存2G 运行有QQ2011,只打开几个网页就会经常弹出&q ...

  • WIN764位系统8G内存识别一半解决办法

    最近有用户遇到WIN764位系统下8G内存只认出一部分,那么怎么解决呢,快来看看小编带来的WIN764位系统8G内存识别一半解决办法吧. 这是我装好系统后拍的照片,可以看到,8G的内存,在系统里却只有 ...

  • 手机内存不足的解决办法

    经常有人遇到这样的情况,智能手机在安装应用的时候,提示:没有存储空间.手机内存不足等情况,不少网友反馈手机SD卡存储空间蛮大的怎么会出现手机内存不足呢?针对这个大家比较容易产生误区的问题,这里为大家简 ...

  • 小米手机老是提示安装内存不足的解决办法

    小米手机老是提示安装内存不足的解决办法 操作方法 01 第一步,当然是用豌豆荚备份数据.虽然小米自带云服务,但是为了保险起见还是使用豌豆荚将联系人,短信,应用等重要数据备份一份.内存里的照片等重要文件 ...

  • 六种内存异常故障解决办法

    当启动电脑.运行操纵系统或应用软件的时候.经常会由于内存出现异常而导致操纵失败.在这里总结了一些内存出现异常的原因,并给出以下几种处理方法,希望可以给大家一些帮助. 步骤/方法 01 故障一:内存条与 ...

  • 电脑占用内存高怎么办,内存占用高解决办法

    今天小编要和大家分享的是电脑内存占用高的解决办法,希望能够帮助到大家. 方法一:清理内存 01 首先在我们的电脑桌面上找到电脑管家并点击它,如下图所示.哦! 02 接着点击清理垃圾,如下图所示. 03 ...

  • 手机内存受损完美解决办法,拯救你的SD卡

    操作方法 01 每次SD卡受损都要格卡的童鞋,一大堆游戏.相片.视频,还有导航地图要重新上传,很麻烦.而且有些重要资料还会丢失,是不是很心疼呢?今天我给大家带来解决办法咯,如果有帮助到你,有分的童鞋不 ...