• 69、什么是内存泄露,如何检测与避免


    内存泄露

    一般我们常说的内存泄漏是指堆内存的泄漏。堆内存是指程序从堆中分配的,大小任意的(内存块的大小 可以在程序运行期决定)内存块,使用完后必须显式释放的内存。应用程序般使用malloc,、realloc、 new等函数从堆中分配到块内存,使用完后,程序必须负责相应的调用free或delete释放该内存块,否 则,这块内存就不能被再次使用,我们就说这块内存泄漏了

    避免内存泄露的几种方式

    1.计数法:使用new或者malloc时,让该数+1,delete或free时,该数-1,程序执行完打印这个计 数,如果不为0则表示存在内存泄露

    2.一定要将基类的析构函数声明为虚函数

    3.对象数组的释放一定要用delete []

    4.有new就有delete,有malloc就有free,保证它们一定成对出现

    检测工具:

    Linux下可以使用Valgrind工具

    Windows下可以使用CRT库

  • 相关阅读:
    计算机系统概述
    Qt学习--初学注意事项
    Qt实现一个简单的TextEditor
    Qt 用户登录界面
    C++ 模板
    多态与虚函数
    继承与派生
    C++ 运算符重载
    web安全-点击劫持
    web安全问题-cookie
  • 原文地址:https://www.cnblogs.com/crbhf/p/14979063.html
Copyright © 2020-2023  润新知