我在我的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;
} ;
答案 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 ) );
原始陈述中有一个冗余的左括号。