typedef struct states{
char stateName[20];
char capital[20];
char fact* = (char*)calloc(1000,sizeof(char));
}states;
我不明白为什么它会在行
中给我这个错误char fact* = (char*)calloc(1000,sizeof(char));
它看起来每个字符的字符到我正在查看的示例代码。谁能解释一下我做错了什么?
答案 0 :(得分:0)
正如kaylum所指出的,结构定义声明了一个类型,而不是一个可以初始化的变量。你的例子是:
typedef struct states{
char stateName[20];
char capital[20];
char fact* = (char*)calloc(1000,sizeof(char)); //WRONG! - Initialization inside struct!
}states;
在这种情况下,您要定义类型,而不是变量。之后您将定义states
类型的变量,然后您将对它们进行初始化。
编辑:你也可以使用初始值设定项(假设您使用的是C99或更新的东西):Initializers