編譯錯誤:variable-sized object may not be initialized


原因,定義數組的時候使用變量來定義數組長度。

如下代碼:

int a = 10;

char b[a];                    //編譯不報錯

//char b[a] = "jfkd";    //報錯,使用變量定義長度時,不可在定義時同時進行初始化賦值,需要在之后進行賦值

printf("b = %s, len = %d:%d\n", b, strlen(b), sizeof(b));

 

 

如下代碼則無問題:

int a = 10;

char b[a];                    //編譯不報錯

strcpy(b, "jfdljf");

printf("b = %s, len = %d:%d\n", b, strlen(b), sizeof(b));

 

原因:在C中,使用變量來定義數組長度是,這個數組可以定義,卻不能同時進行初始化賦值,需要在之后賦值。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM