zoukankan      html  css  js  c++  java
  • 动态内存管理

         (1).c中动态内存管理方式
         malloc、calloc、realloc在堆上开辟空间、free将申请的空间释放掉
         void *malloc( size_t size );
         void *calloc( size_t num, size_t size );
         void *realloc( void *memblock, size_t size );
     
    (2).C++中动态内存管理
         通过new和delete运算符进行动态内存管理
    (3).malloc/free和new/delete的区别与联系
         a.它们都是动态管理内存的的入口
         b.malloc/free只是动态的分配和释放内存空间。new/delete除了分配空间还会调用构造函数和析构函数进行初始化与清理(清理成员)
         c.malloc需要手动的计算类型大小并且返回值是void*。new可自己计算类型的大小,返回对应类型的指针
    (4).new[]和delete[]
         new[]/delete[]只是malloc/free的一层封装,不会调用对象的构造函数/析构函数,来初始化/清理对象
         new的作用:调用operator new来分配空间,调用构造函数初始化对象
         delete的作用:调用析构函数清理对象,调用operator delete释放空间
         new[]的作用:调用operator new分配空间,调用N次构造函数来初始化对象
         delete[]的作用:调用N次析构函数清理对象,调用operator detele释放空间
    安心下来做技术,笑是最大的福气
  • 相关阅读:
    「APIO2017」商旅
    【CQOI2017】小Q的表格
    【HNOI2016】树
    【NOI2018模拟】Yja
    测试
    Loj #6073.「2017 山东一轮集训 Day5」距离
    「AHOI / HNOI2017」影魔
    Loj 6068. 「2017 山东一轮集训 Day4」棋盘
    【SDOI2014】向量集
    远程服务器安装nginx
  • 原文地址:https://www.cnblogs.com/JN-PDD/p/6613985.html
Copyright © 2011-2022 走看看