C++如何在用new创建动态数组的同时初始化数组
展开全部
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;}
用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;}
展开全部
一般来说开辟一个空间并且赋值是 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
开辟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
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询