首页 > 代码库 > 动态内存管理
动态内存管理
(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释放空间
动态内存管理
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。