动态创建数组

部署运行你感兴趣的模型镜像

数组类型的变量有三个重要的限制:数组长度不变,在编译时必须知道其长度,数组只在定义它的语句块内存在。实际的程序往往需要动态的分配数组。虽然数组长度是固定的,但动态分配的数组不必在编译时知道其长度,可以(通常是)在运行时才确定数组长度,与数组变量不同,动态分配的数组将一直在,知道程序显式释放它为止。

C语言使用一对标准的函数malloc和free在自由存储区中分配存储空间,而C++语言则使用new 和 delete 表达式实现相同的功能。

 

1.动态数组的定义

动态分配数组时,只需指定类型和数组长度,不必为数组对象命名,new 表达式返回新分配数组的第一个元素的指针。

int *pia = new int[10];

 此new表达式分配了一个含有10个int型元素的数组,并返回指向该数组的第一个元素的指针。

 

2.初始化动态分配的数组

动态分配数组时,如果数组元素类型是类类型,将使用类的默认构造函数实现初始化;如果数组元素是内置类型,则无初始化。

int *pia = new int[10];//无初始化
string *pia = new string[10];//string默认构造函数初始化

 也可使用跟在数组长度后面的一对空圆括号,对数组元素做值初始化

int *pia = new int[10]();//都初始化为0

 3.const对象的动态数组

const int *pia_bad = new const int[10];//错误
const int *pia_ok = new const int[10]();//正确

 C++允许定义类类型的const数组,但该类型必须提供默认构造函数

const string *pia_ok = new const string[10];//正确

 

4.动态控件的释放

动态分配的内存最后必须进行释放,否则内存最终将会逐渐耗尽。

C++语言为指针提供delete [] 表达式释放所指向的数组空间,delete [] pia_ok;

注意:在关键字delete和指针之间的空方括号对是必不可少的,它告诉编译器该指针指向的是自由存储区中的数组,而并非单个对象。如果遗漏空方括号,这是一个编译器无法发现的错误,将导致程序在运行时出错。

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值