编译错误: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中,使用变量来定义数组长度是,这个数组可以定义,却不能进行初始化赋值,可以在之后赋值。

猜你喜欢

转载自blog.csdn.net/leo062701/article/details/80566929