C++对一维数组的定义

int n; cin>>n; int a[n];
int n = 5, a[n];

 

 

这两种定义方式为什么不符合C++的标准

啊这,数组定义时需要用一个常量确定其长度,你需要的功能可以用动态分配实现,

1.定义一个n

2.为n赋值

3.定义一个指针

4.为指针动态分配空间。

int n;
cin>>n;

int* a = nullptr;
a = (int*)malloc(sizeof(int) * n);

这样就是你需要的动态确定一个数组的长度了。

用完记得释放你分配的空间

free(a)

c++数组大小需要在编译时确定,而你却是让它在运行时确定。