用户输入一个数,通过输入的数去动态确定数组的大小。
不能直接在定义数组的时候进行大小声明,而要用指针,返回数组类型的指针。这样就可以先不声明大小,然后等用户输入数组大小之后再确定数组大小。
也不能用类似
int n;
scanf("%d",&n);
int array[n];
//这样的,因为变量是不可以作为数组申请时的空间声明的,会报错。
//应用
#include<cstdio> #include<algorithm> using namespace std; int n; const int MAX = 10000000; int main(){ while (1){ //用于调试,无限循环 scanf("%d", &n); //输入数组大小 if (n >= MAX){ //如果申请过大提示超出内存可用 printf("RAM OVERFLOW!\nRETRY\n"); continue; } int *p = new int[n]; //声明一个数组的指针,这样就可以把变量作为数组大小声明 for (int i = 0; i < n; i++){ scanf("%d", (p + i)); } for (int i = 0; i < n; i++){ printf("%d ", *(p + i)); } printf("\n"); delete[]p; //释放数组空间,delete后边一定要有[] } //scanf("%d", &n); return 0; }