生活资讯
【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://gzhdwind.xhstdz.com/xwnews/347.html 
     栏目首页      相关文章      动态      同类文章      热门文章      网站地图      返回首页 物流园资讯移动站 http://gzhdwind.xhstdz.com/mobile/ , 查看更多   
最新文章
干货分享:vue2.0做移动端开发用到的相关插件和经验总结
5、better-scrollbetter-scroll介绍: better-scroll, 官方网址,better-scroll 是一款重点解决移动端࿰
SEO优化秘籍:提升网站排名的代码技巧 网站seo的代码
在当今数字化时代,网站的搜索引擎优化(SEO)已不再是可选项,而是企业在线成功的关键基石SEO不仅仅关乎内容的质量和相关性,更
嘉兴百度SEO优化背后的逻辑 实现关键词快速提升排名--嘉兴百度关键词推广实战技巧 让你的网站脱颖而出
云初科技网站制作|网络推广小程序商城系统|公众号制作电话:13292208571(微信)点击一键拨打电话:13292208571网站建设公司 企
SEO全攻略,解锁网站排名飞跃的黄金技巧
SEO优化技巧包括关键词研究、高质量内容创建、合理布局、外部链接建设等,全方位提升网站排名。关键词精准匹配、优化网站结构、
【原】2024最新股民电销获客渠道,运营商SDK/DPI实时捕捉电销股民数据手拨一手料子
随着互联网的不断发展和普及,作为运营商早已发现了大数据的重要性。运用大数据技术,可以深挖用户需求,运营商可以更加精准地获
【内存】Linux 页表、大页与透明大页|大页内存
目录页表与MMUCPU访问的是什么地址(虚拟地址,物理地址)?MMU如何工作MMU对内存的保护多级页表一、 内存映射与页表1. 内存映射2.
2024-2025学年高三级福建省福州市一检语文讲评课件.pptx
2024-2025年高三级福州一检语文讲评课件PARTONE现代文阅读(35分)(一)现代文阅读I(本题共5小题,19分)试题呈现:1.下列对原文相
百度关键词优化多少钱,关键词优化一个月多少钱
优化 one 关键词多少钱优化不管多好?郑州网站优化 one 关键词多少钱?Seo 关键词 优化如何收费很多企业会选择外包公司优化,那
成都SEO服务,助您企业网站搜索引擎排名飞跃
成都专业SEO服务,助力企业网站优化,提升搜索引擎排名,实现网站流量增长,助力企业品牌提升。全方位SEO策略,定制化服务,助您
11 个全球最好的 AI 文本转语音工具(2024 年)
人工智能技术在2024年继续在进步,除了大家所熟知的 ChatGPT 相关的大语言模型的出现,带动了一系列 AI应用的兴起,另外在语音人
相关文章