C++小问题,快者加分

来源:百度知道 编辑:UC知道 时间:2024/05/11 02:12:06
#include <iostream>
using namespace std;
int main()
{
int n;
cin>>n;
int a[n+1]={};

system("pause");
return 0;
}
错误信息:
variable-sized object `a' may not be initialized
为什么?
那这样为什么可以?
int n;
cin>>n;
int a[n+1];
我查了一下,好象就是有些a[i]不是0,那不也定义成功了吗?
我就想问为什么这样不行?非要改char?

数组不可以这么定义,如果想动态定义数组,应该像这样:

#include <iostream>
using namespace std;
int main()
{
int n,*a;
cin>>n;
a=new int[n+1];/*动态定义一个长度为n+1的整数数组*/

system("pause");
delete[] a;/*释放为a分配的空间*/
return 0;
}

a不能声明为长度不定的数组。
长度n+1在编译时是不确定的,所以错误。

你改下数组类型,用char来定义