码迷,mamicode.com
首页 > 其他好文 > 详细

动态内存管理

时间:2017-03-25 00:09:27      阅读:139      评论:0      收藏:0      [点我收藏+]

标签:内存   block   并且   void   strong   初始化   构造   img   ges   

     (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释放空间

 

 

 

 

 

 

 

 

动态内存管理

标签:内存   block   并且   void   strong   初始化   构造   img   ges   

原文地址:http://www.cnblogs.com/JN-PDD/p/6613985.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!