错误:在'*'标记之前预期':',',',';','}'或'__attribute__'

时间:2017-07-03 03:22:23

标签: c debugging

typedef struct states{
    char stateName[20];
    char capital[20];
    char fact* = (char*)calloc(1000,sizeof(char));
}states;

我不明白为什么它会在行

中给我这个错误
char fact* = (char*)calloc(1000,sizeof(char));

它看起来每个字符的字符到我正在查看的示例代码。谁能解释一下我做错了什么?

1 个答案:

答案 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