C++如何在用new创建动态数组的同时初始化数组

 我来答
草原上之狼
高粉答主

2018-05-28 · 醉心答题,欢迎关注
知道大有可为答主
回答量:2.9万
采纳率:93%
帮助的人:4060万
展开全部
new命令是C++的专用命令,用来动态分配内存空间。 相当于C语言中的malloc()函数功能。
用new创建动态数组的应用过程:
1、定义指针变量
2、获得数组长度
3、用new分配相应的内存空间
4、使用动态数组
5、不再使用该内存时,释放指针,相应命令为:delete
参考代码:

#include<iostream>using namespace std; int main(){ int *parr=NULL; int num=0; cout << "input num: " ; cin >> num ; parr=new int[num]; //分配一个具有num个int元素的数组空间 for( int i=0;i<num;i++ ) parr[i]=i*i ; for( int j=0;j<num;j++ ) cout << parr[j] <<" "; cout<<endl; delete []parr; //释放数组,注意[] return 0;}
绝恋灬成
2021-02-02
知道答主
回答量:11
采纳率:0%
帮助的人:6617
展开全部
一般来说开辟一个空间并且赋值是 int *p = new int(4); 即 *p = 4。
开辟10个空间数组是 int *p = new int[10]; (int *p = new int[10](4) 是不对的,不支持)
但是想在开辟空间的同时并且初始化的话可以这样写

1/ int *p = new int[10]{} 或者 int *p = new int[10]() 这两种都是初始化为0
2/ int *p = new int[10]{1,2,3,4,5,6,7,8,9,10} 这种是直接赋值,但是数组太长的话还是的用for去赋值
3/ int* p = new int[10]{ 1 }; 这种赋值的结果是 1,0,0,0,0,0,0,0,0,0
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式