动态内存分配

动态数据结构能够伸缩。

:对新内存空间的申请和维护。

:回收分配的内存。

new运算符:使用该运算符获得新的内存空间,new返回分配内存的地址。分配的内存是从 堆分配的,也就是C++运行时管理的内存区域分配。说白了,就是由编译器划分一段内存出来。

//分配保存一个整数的内存空间
int * pNumber=new int;

一般来讲,最好在分配内存时初始化该内存保存的内容

int *pNumber=new int(100);

分配一个类的对象
类的构造函数不带有参数时

A* pA=new A;

类的构造函数带有参数时

A* pA=new A(10,20)

分类对象的数组
可以分配构造函数不带参数的类的对象数组,或者说没有显式的构造函数的类的对象数组

A * pAs=new A[100];

当构造函数带有参数时,若函数的参数为缺省参数(带有默认值),此时可以分配对象数组

A * pAs=new A[100]

若类有一个构造函数,该构造函数需要一个参数,则无法分配对象数组

//编译不过
A * pAs=new A[100]

没有办法可以直接初始化动态分配的数组内容,因为不能给对象的构造函数传递值和变量的值。因此,分配内存后,必须遍历数组设置其值。

int * pAs=new int[100];
for(xxx)
  pAs[i]=xxx;

释放内存
对于一个变量或对象

delete pAs;

对于数组

delete [] pAs;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

林多

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值