在C中初始化结构给出“匿名结构的声明必须是定义”错误

时间:2015-03-17 18:54:06

标签: c graph struct

我在我的C代码中声明了一个结构,称为边

struct edge{
int weight;
struct node *Node1;
struct node *Node2;
};

其中node是我的代码中定义的另一个结构。 当我尝试在代码中声明边缘时,我使用

struct edge *ab=(struct edge*)malloc(sizeof(struct(edge));

这给了我两个错误:1)匿名结构的声明必须是一个定义 2)类型名称需要说明符或限定符。

我做错了什么?为了进一步参考,我的节点结构定义为

struct node{
char data;
struct node *parent;
} ;

2 个答案:

答案 0 :(得分:5)

sizeof(struct(edge))

必须是

sizeof(struct edge)

不允许在结构标记中添加()

答案 1 :(得分:1)

更新此声明

struct edge *ab=(struct edge*)malloc(sizeof(struct(edge));

以下方式

struct edge *ab = ( struct edge* )malloc( sizeof(struct edge ) );

原始陈述中有一个冗余的左括号。