原因,定义数组的时候使用变量来定义数组长度。
如下代码:
int a = 10;
char b[a]; //编译不报错
//char b[a] = "jfkd"; //报错,使用变量定义长度时,不可在定义时同时进行初始化赋值,需要在之后进行赋值
printf("b = %s, len = %d:%d ", b, strlen(b), sizeof(b));
如下代码则无问题:
int a = 10;
char b[a]; //编译不报错
strcpy(b, "jfdljf");
printf("b = %s, len = %d:%d ", b, strlen(b), sizeof(b));
原因:在C中,使用变量来定义数组长度是,这个数组可以定义,却不能同时进行初始化赋值,需要在之后赋值。