zoukankan      html  css  js  c++  java
  • 动态内存&对象

    一、对象的生存期

      对于 static 对象和自动对象,它们都有着严格定义的生存期。

    • 全局对象:在程序启动时分配,在程序结束时销毁。
    • 局部自动对象:在对象定义语句时分配,在离开块时销毁
    • 局部 static 对象:在对象定义语句时分配,在程序结束时销毁

      对于动态分配对象,其生存期与它们在哪里创建是无关的,只有当显式地被释放时,这些对象才会销毁。

    二、对象的位置

    1. 静态内存

      保存:局部 static 对象、类 static 数据成员、全局变量

    2. 栈内存

      保存:局部自动对象

    3. 自由空间(堆)

      存储:动态分配的对象

    4. 备注

      每个程序除了有静态内存和栈内存,还拥有一个内存池,这部分内存被称作自由空间或堆

      程序用堆来存储那些在程序运行时分配的对象,即动态分配的对象

     

    三、动态内存的管理

    1. 动态对象的生存期由程序来控制,即当动态对象不再使用时,我们的代码必须显式销毁它们

    2. 内存泄漏:忘记释放内存

    3. 产生引用非法内存的指针:在尚有指针引用内存的情况下而释放内存

    4. 智能指针类型:目的是管理动态分配的对象(当一个对象应该被释放时,指向它的智能指针可以确保自动地释放它)

  • 相关阅读:
    MySQL系列
    Python小白之路
    nrm安装使用(mac)
    npm 发布一个包(已有自己私服的情况)
    vuex简单使用
    在vue中使用ztree树插件
    题库1
    设计模式读书笔记
    ORM框架学习之EF
    net+Oracle开发过程中遇到的小问题
  • 原文地址:https://www.cnblogs.com/xzxl/p/7735375.html
Copyright © 2011-2022 走看看