C++学习34:内存管理初探

1 初识内存管理

从上到下就是我们对于内存的“底层”程度。而对于程序员而言,malloc就可以视为最底层,所有有关内存管理的内容,归根结底都是运用了malloc。
在这里插入图片描述
对于我们而言,需要掌握的内存工具如下:
在这里插入图片描述
下面有个应用了以上四个内容的例子:
在这里插入图片描述
上图的1-2行、4-5行、7-8行,实际上都是执行了相同的操作:分配一块内存,然后释放掉这块内存。(7-8行的::operator new底层就是调用的malloc,而::operator delete底层就是调用的free)。
10行以下使用C++提供的分配器allocators。14-15行和19-20行用的是allocator<int>类型的临时对象(临时对象:类型后面跟小括号)。归还内存时,调用deallocator,必须要给出给出的空间是多大。24-25行的内容现在有了改进,但便于后面的学习和理解,,还请读者熟悉一下,下面给出GUNC更规范的版本:
在这里插入图片描述
现在我们从16行找到了内存池的概念,在后面我们会提到。

2 new和delete

1、new会先分配一块内存,随后转型,用于存储该类型的object。
2、分配内存后,调用该类型的构造函数
在这里插入图片描述
与new相反,delete先析构,然后释放内存。
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值