C++问题:如何定义一个未知大小的一维数组,数组大小由输入的值决定

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++问题:如何定义一个未知大小的一维数组,数组大小由输入的值决定相关的知识,希望对你有一定的参考价值。

int arraysize;//元素个数
cout<<"请输入数组的大小:";
cin>>arraysize;

int *array;//用指针指向一个数组
array=new int[arraysize]; //动态内存分配
....
delete []array;//最后要释放这个空间,是一组空间所以加了[]。

array=new int[arraysize];
new表示申请空间;什么类型?int;多大?arraysize
参考技术A 方法一:
……
int n;
cout<<"请输入你想建立的一维数组维数:"<<endl;
cin>>n;
int *array = new int[n];
……
delete [] array;
方法二:
现代c++程序一般用容器vector代替数组。
vector<int> vec;
添加值(比如1)用vec.pushback(1)
参考技术B 定义的时候,大小直接留空就ok了
char a[];

C++ 如何创建一个需要输入大小的数组

就是实现不知道需要分配多少内存,通过输入才知道数组大小

参考技术A 用new可以实现,如下面新建一个输入大小的数组
#include <iostream>
using namespace std;
int main(int argc, char *argv[])

int a;
cout << "请输入新建数组的大小:" << endl;
cin >> a;
char *p = new char[a];

delete []p;
return 0;

新建的数组(其他用new生成的 也一样)不再使用,要用delete删除掉。
参考技术B 用1楼的例子就行 C++的话 就看那个new 和delete运算符的例子 参考技术C int *p;
int n;//数组大小
cin>>n;
p=new int[n];
...
delete []p;

或者
p=(int *)malloc(n*sizeof(int));
...
free(p);

或者
p=(int *)calloc(n*sizeof(int));
...
free(p);本回答被提问者采纳
参考技术D 对 就这样 第5个回答  2009-07-12 用动态内存分配。你是不是还没有学到这里?学到了你就知道该怎么做了。这个后面是肯定要学到的。楼上的给出了一个动态声明数组了例子。

以上是关于C++问题:如何定义一个未知大小的一维数组,数组大小由输入的值决定的主要内容,如果未能解决你的问题,请参考以下文章

c++中用new给未知大小的数组分配空间怎么弄?

javascript 定义二维数组,两列,未知行数

如何合并多个未知深度的平面数组,转置它们,然后形成一维数组?

C++如何封装一个数组冒泡排序的方法

C++ 一维数组及二维数组的特征和用法

C程中如何计算数组(一维及二维)占内存空间的大小