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;

这样写编译器就不会报错。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM