编译错误: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