variable-sized object may not be initialized 报错的原因
首先来看一段代码:
int n;
scanf("%d",&n);
int a[n]={2},b[n]={0};
这里创建了两个int类型的数组a[ ],b[ ],指定数组的长度为n,并对数组的第一个元素的值进行赋值(初始化),然后编译器报错:
error: variable-sized object may not be initialized
(变量大小的对象不能初始化)
如果在Dev C++的编译器里面来实现的话是可以实现的,这样的写法是没有问题的。这里报错的原因是C语言规定了不能使用variable-sized的数组,问题在于不能用变量声明数组大小的同时初始化
解决办法:创建数组的时候不要对其进行初始化就OK
int n;
scanf("%d",&n);
int a[n],int b[n];
a[0]=2;
b[0]=0;
这样写编译器就不会报错。