生活资讯
【C++】内存管理
2024-12-14 09:22  浏览:114

说明:

  1. 栈又叫堆栈–非静态局部变量/函数参数/返回值等等,栈是向下增长的。
  2. 内存映射段是高效的I/O映射方式,用于装载一个共享的动态内存库。用户可使用系统接口创建共享共享内存,做进程间通信。(Linux课程如果没学到这块,现在只需要了解一下
  3. 堆用于程序运行时动态内存分配,堆是可以上增长的。
  4. 数据段–存储全局数据和静态数据。
  5. 代码段–可执行的代码/只读常量。

从上面这个我们可以看出,我们对内存的操作绝大部分是在堆区进行的,那么对于C语言的内存管理函数malloc . calloc , realloc 是否还记得

 

malloc函数的使用方法
calloc函数的使用方法
realloc函数的使用方法

因为C语言和C++可以兼容,所以C语言的方式在C++中依然可以使用,但是有时候会很麻烦,所以C++提出了自己的内存管理方式通过 new 和 delete 进行动态内存管理

 

要注意new和delete要匹配使用
new —— delete
new[ ] —— delete[ ]

当然若要申请二维数组,和C语言一样麻烦,分为数组指针和指针数组两种

 
 
 

这里最大的区别是对于自定义类型,new会调用自定义类型的构造函数,delete会调用自定义类型的析构函数

 

从上面我们可以看到一些属性的面孔,malloc,free这是C语言开辟和销毁空间的方式

 
 
 
 

如果是申请内置类型的空间,new/delete 和 malloc/free基本相同
不同的地方在
new/delete是申请单个空间,new[ ]/delete[ ]是申请连续空间
new申请失败会抛异常,malloc申请失败会返回NULL

<1>new的原理
1、调用operator new申请空间
2、调用构造函数,对申请的空间进行构造

<2>delete原理
1、在空间中调用析构函数,将对象中的空间进行清理
2、调用operator delete 函数释放对象空间

<3>new T[N] 的原理
1、调用operator new[ ]函数,在函数中调用N次operator new函数完成对对象空间的申请
2、在申请的空间上N次调用构造函数

<4>delete[ ]的原理
1、在释放空间上调用N次析构函数
2、调用operator delete[ ]函数,在函数中调用N次operator delete函数完成对空间的释放

 
 
 
 

定位new表达式是在已分配的原始内存空间中调用构造函数初始化一个对象

new (place_address) type
new (place_address) type (initializer_list)
place_address 是一个指针
initializer_list 是类型的初始化列表

定位new表达式一般和内存池配合使用,因为内存池中数据为初始化,所以需要通过new的定位表达式进行显示构造函数初始化

    以上就是本篇文章【【C++】内存管理】的全部内容了,欢迎阅览 ! 文章地址:http://sjzytwl.xhstdz.com/xwnews/347.html 
     栏目首页      相关文章      动态      同类文章      热门文章      网站地图      返回首页 物流园资讯移动站 http://mip.xhstdz.com/ , 查看更多   
最新文章
教你彻底关闭手机自动更新,老手机不再卡顿还可以继续用几年手机系统更新怎么关闭「教你彻底关闭手机自动更新,老手机不再卡顿还可以继续用几年」
当我们购买一部新手机时,第一时间关闭系统更新是非常重要的。你们知道为什么我们经常更换手机吗?不正是因为手机变得卡顿和不流
电信固话怎么设置呼叫转移座机转接到手机怎么设置「电信固话怎么设置呼叫转移」
在现代通信中,呼叫转移功能为用户提供了极大的便利,尤其是在无法接听电话或需要临时将电话转接到其他号码时。对于电信固话用户
从“出新必换”到“多年不换”,消费者为啥不爱换手机了?手机几年换一次比较好「从“出新必换”到“多年不换”,消费者为啥不爱换手机了?」
你有多久没换手机了?不少消费者反馈,自己已经一两年或更长时间没有购买新手机或新平板电脑了。从“出新必换”到“多年不换”,
求小明正确的四位手机密码手机密码破解「求小明正确的四位手机密码」
小学生题目:小明五次输入四位数的手机密码均错误,但是每次输入的密码中都有两位数字正确,且输入的数字的位
奥尼尔谈GOAT人选:NBA仅4人够格
关于谁才是NBA的GOAT,每个人心中都会有自己的看法,毕竟大家看比赛的角度不同,对于球星成色的判断也就不同。近日,奥尼尔就谈
新就业形态下,灵活就业人员权益如何保障?
原标题:新就业形态下,灵活就业人员权益如何保障?(主题)专家:多方协同推动劳动者权益保障与企业可持续发展(副题)中国妇女
5G麒麟芯+卫星通信!华为20多款中端机已备案,继续发力高性能手机「5G麒麟芯+卫星通信!华为20多款中端机已备案,继续发力」
近日,有消息称华为将不仅在高端市场回归,还将回归中端市场,将麒麟9000s芯片下放到中端手机中。同时,华为还计划在中端手机中
买台手机好过年 没选新出的S16 Pro 却买了上代15 Pro新出的手机「买台手机好过年 没选新出的S16 Pro 却买了上代15 Pro」
购买小米12 Pro翻车后,眼看离春节就几天,还是要在过年前满足自己买过年的愿望。只考虑了OPPO和VIVO的产品后,放弃了OPPO的Reno
iPhone游戏必备神器、精准识别那个老六。雷蛇手机「iPhone游戏必备神器、精准识别那个老六。」
相信很多用iPhone玩游戏的值友们都遇到过降频的问题,尤其13PM,虽然支持120hz但是只要你敢开,十分钟内必让你的屏幕黑下来,感
割裂的杭州楼市:手握千万资金抢不到房,刚需盘降价40万无人问津
“ 杭州一季度的楼市表现,如同一面多棱镜,映照出土地市场的狂热、开发商的野心、购房者的焦虑,也暴露出城市发展的不均衡。中