typedef struct tree_node
{
int data;
struct tree_node *left;
struct tree_node *right;
}node;
node* newnode(int data)
{
node *node=(node*)(malloc(sizeof(struct tree_node)));
node->data=data;
node->left=NULL;
node->right=NULL;
return(node);
}
此部分代码显示错误。错误是什么?为什么不编译? 编辑:显示的错误是错误:')'令牌之前的预期主要表达式。但是,如果我将代码更改为
node* newnode(int data)
{
node *node1=(node*)(malloc(sizeof(struct tree_node)));
node1->data=data;
node1->left=NULL;
node1->right=NULL;
return(node1);
}
它完美无缺。这是什么原因?
答案 0 :(得分:3)
您使用 node 作为类型名称,但它是一个变量。 将其更改为:
typedef struct tree_node
{
int data;
struct tree_node *left;
struct tree_node *right;
};
tree_node* newnode(int data)
{
tree_node *node=(tree_node*)(malloc(sizeof(struct tree_node)));
node->data=data;
node->left=NULL;
node->right=NULL;
return(node);
}
下次请分享编译错误,不要指望我们找到它...