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