c++动态数组(一)之new和delete

来源:互联网 发布:阿里云飞天 编辑:程序博客网 时间:2024/06/05 15:00

new和delete运算符一次分配/释放一个对象,但某些应用需要一次为很多对象分配内存功能。
c++语言和标准库提供了两种一次分配一个对象数组的方法。
c++语言定义了另一种new表达式语法,可以分配并初始化一个对象数组
标准库中包含一个名为allocator的类,允许我们将分配和初始化分离。

new和数组

    int *pia = new int[1024];//分配1024int,pia指向第一个int

分配一个数组会得到一个元素类型的指针。由于分配的内存并不是一个数组类型,因此不能对动态数组调用begin或者end。这些函数使用数组维度来返回指向首元素和尾后元素的指针。

初始化

int *pia = new int[1024];//10个未初始化的intint *pia2 = new int[1024]();//10个值初始化为0的intstring *psa = new string[10];//10个空stringstring *psa2 = new string[10]();//10个空string

动态分配一个空数组是合法的

size_t n = get_size();int *p = new int[n];for(int *q = p;q!=p+n;++q){//处理数组}

当n为0的时候也是合法的。但是为0的时候p不能解引用。这时,new返回一个合法的非空指针。对于0长度的数组来说,此指针就像尾后指针一样。

释放动态数组

delete p;//p必须指向一个动态分配的对象或者为空delete [] p;//p必须指向一个动态不配的数组或者空
阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 吴昌硕临石鼓文 运城临猗租房信息 临泉租房 临桂租房信息个人房源 临空墙 临空墙是什么意思 临的笔画 临字 临字的部首 临偏旁 临字部首 临字繁体 临可以组什么词 临能组什么词 临组词语 临的组词 临怎么组词 临字组词 临组词和拼音 临拼音组词 临的拼音和组词 临的组词有什么 临的组词是什么 脑出血老人临终前是什么征兆 心衰病人临终前一晚症状 人临终前的种种征兆 老人临终前的生理表现 老人临终前发烧还能活几天 临翔区招聘信息 临行密密缝 临行密密缝意恐迟迟归 临行密密缝意恐迟迟归的意思 死刑犯临行前 临西 临西吧 临西县 临西县医院 东临西厢 临西轴承网 石家庄到临西的客车 临西吧招聘