编译错误:variable-sized object may not be initialized 原因,定义数组的时候使用变量来定义数组长度。 int a = 10; char b[a] = {11}; //编译报错 `` 不能定义数组长度的同时进行赋值,修改如下: int a = 10; char b[a] ; //编译不报错 strcpy(b, "jfdljf"); 原因:在C中,使用变量来定义数组长度是,这个数组可以定义,却不能同时进行初始化赋值,需要在之后赋值。