• 构造函数,C++内存管理,内存泄漏定位


    构造函数

    1.构造顺序

      虚基类构造函数,基类构造函数,类对象构造函数,自己的构造函数

     

    2.必须使用初始化列表

      (1) 引用成员,常量成员;

      (2) 基类没默认构造函数(自己重载覆盖了),

           (3)类对象成员没默认构造函数(自己重载覆盖了)

    3.析构顺序

         reverse( 虚基类构造函数,基类构造函数,类对象构造函数,自己的构造函数)

    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    内存管理

    1.stack ---编译器自动管理,函数参数,局部变量,比较小

    2.heap ---程序员自己管理,程序结束OS可能回收,存在内存碎片

    3.static,全局----初始化的全局变量,未初始化的全局变量区

    4.文字常量区 ---程序结束 释放

    5.程序代码区 --- 存放函数的二进制代码

    留待添加:

    ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    内存泄漏定位

    (1)在windows平台下通过CRT中的库函数进行检测; 
    (2)在可能泄漏的调用前后生成块的快照,比较前后的状态,定位泄漏的位置 
    (3)Linux下通过工具valgrind检测

    //////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    手写strcpy,memcpy,strcat,strcmp等函数

  • 相关阅读:
    hdoj 1002 A + B Problem II
    hdoj 1234 开门人和关门人
    hdoj 2203 亲和串
    nyoj 73 比大小
    81B
    信息传递
    bzoj1787
    最少交换次数
    100803C
    火柴排队
  • 原文地址:https://www.cnblogs.com/sofard/p/9821898.html
Copyright © 2020-2023  润新知