我试图创建一个结构,该结构在代码上方定义了两个struct nodo
类型的指针。但这给了我错误:
在'='令牌列表之前预期':',',',';','}'或'属性'a dati_mappa = NULL;”。
这是代码:
typedef int data;
struct nodo
{
data elem;
struct nodo *next;
};
typedef struct nodo *lista;
struct mappa {
data R;
data C;
lista dati_mappa = NULL;
lista pos_valida = NULL;
};
答案 0 :(得分:9)
不允许在C中对结构成员进行内联初始化。
如果要初始化成员,则需要在创建结构实例之后进行。
答案 1 :(得分:0)
您不能在C中的声明级别执行此操作(在C ++中可以)。
您需要这样的东西:
...
int main()
{
struct mappa mymap;
mymap.dati_mappa = NULL;
mymap.pos_valida = NULL;
...
}
或者您可以使用Aggragate初始化:
...
int main()
{
struct mappa mymap = { .dati_mappa = NULL,
.pos_valida = NULL };
...