前言
本篇博客我们来看一下,对于C++这种语言,我们怎么实现对内存的分配与管理
💓 个人主页:小张同学zkf
⏩ 文章专栏:C++
若有问题 评论区见📝
🎉欢迎大家点赞👍收藏⭐文章
目录
3.operator new与operator delete函数
1.C++内存分布
我们先来看一下内存中区域划分
1.
栈
又叫堆栈
--
非静态局部变量
/
函数参数
/
返回值等等,栈是向下增长的。
2.
内存映射段
是高效的
I/O
映射方式,用于装载一个共享的动态内存库。用户可使用系统接口
创建共享共享内存,做进程间通信。(
现在只需要了解一下)
3.
堆
用于程序运行时动态内存分配,堆是可以上增长的。
4.
数据段
--
存储全局数据和静态数据。
5.
代码段
--
可执行的代码
/
只读常量。
2.C++内存管理方式
C
语言内存管理方式在
C++
中可以继续使用,但有些地方就无能为力,而且使用起来比较麻烦,因
此
C++
又提出了自己的内存管理方式:
通过
new
和
delete
操作符进行动态内存管理
。
2.1new/delete操作内置类型
举个例子
void Test (){// 动态申请一个 int 类型的空间int* ptr4 = new int ;// 动态申请一个 int 类型的空间并初始化为 10int* ptr5 = new int ( 10 );// 动态申请 10 个 int 类型的空间int* ptr6 = new int [ 3 ];delete ptr4 ;delete ptr5 ;delete [] ptr6 ;}

注意:申请和释放单个元素的空间,使用
new
和
delete
操作符,申请和释放连续的空间,使用
new[]
和
delete[]
,注意:匹配起来使用。