这部分代码的错误是什么?

时间:2014-08-12 10:54:32

标签: c data-structures tree

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);
}

它完美无缺。这是什么原因?

1 个答案:

答案 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);
}

下次请分享编译错误,不要指望我们找到它...