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

说明:

  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://changmeillh.xhstdz.com/xwnews/347.html 
     栏目首页      相关文章      动态      同类文章      热门文章      网站地图      返回首页 物流园资讯移动站 http://changmeillh.xhstdz.com/mobile/ , 查看更多   
最新文章
Bing网站管理员工具:完整分步教程
您可能已经知道Bing是第二大搜索引擎,对吗?所以你肯定已经设置了必应网站管理员工具。或者也许你还没有,因为你从来没有真正考
百度外链收录工具,助你网站排名飙升
在此次交流中,我将聚焦于对百度外链收录查询工具的实践经验分享。身为网站运营者,皆知外链之重要性——其既关乎网站排名与流量
实测ChatGPT插件真香用法,视频一键变脑图,高数作业轻松拿捏
原创 关注前沿科技 量子位梦晨 丰色 发自 凹非寺量子位 | 公众号 QbitAISam Altman诚不我欺:像用iPhone一样使用ChatGPT,就是现
chatGPT中文免费版app功能
chatGPT中文免费版app,推荐给大家,是一款可以让我们免费在线使用ai智能机器人进行聊天互动以及交友的神奇工具。它通过后台代码
昆明网站制作工作室:打造完美网站的全面指南313
在当今竞争激烈的数字时代,拥有一个精心制作的网站对企业的成功至关重要。对于位于昆明的企业来说,选择一个经验丰富的网站制作
电商图像处理新利器!AI一键更换商品背景的解决方案
当你在电商平台上看到那些令人眼前一亮的商品图时,是否曾经想过它们是如何制作的?尤其是在产品图片背景处理上,想必许多电商运
全网ai工具导航合集网站推荐,SEO+AIGC必备!【干货收藏】
​​这篇文章是白杨SEO好友兼前前同事大鱼论AI用心整理的,他也在我的玩赚流量星球和群里。整理得很全,我想你可能会用到,所以
6.如何利用SEO赚取美金
众所周知,SEO(Search Engine Optimization)搜索引擎优化,是一种获取流量的方式,利用搜索引擎规则提高网站在相关搜索内的自
欧陆国际:外贸SEO应该怎么做
外贸SEO应该怎么做?外贸行业有两种线上模式:自己搭建网站、借助于B2B平台开网店,自建网站不受平台限制,推广方式也比较自由,
各个网站及搜索引擎收录地址大全
搜索引擎网站收录地址大全 【点此提交您的搜索引擎】360搜索引擎登录入口:http://info.so.360.cn/site_submit.html即刻
相关文章