C未声明的标识符错误(结构指针)

C未声明的标识符错误(结构指针),c,compiler-errors,undeclared-identifier,C,Compiler Errors,Undeclared Identifier,我试图解决这个问题已经有一段时间了,但我就是解决不了。我是一名仍在学习C语言的学生,所以我可能做了一些完全错误的事情,但我看不出来。我试图声明两个新的结构指针。我尝试过初始化它们为空,但什么都没有。我被难住了。我想我在尝试一些我不能做的事情,但我不知道那是什么。谢谢 这是我的结构: struct node { int key; int count; struct node *left, *right; }; typedef struct

我试图解决这个问题已经有一段时间了,但我就是解决不了。我是一名仍在学习C语言的学生,所以我可能做了一些完全错误的事情,但我看不出来。我试图声明两个新的结构指针。我尝试过初始化它们为空,但什么都没有。我被难住了。我想我在尝试一些我不能做的事情,但我不知道那是什么。谢谢

这是我的结构:

    struct node {
      int key;
      int count;
      struct node *left, *right;
    };
    typedef struct node node;
下面是我要声明的内容:

    node *insert_node(node *root, node *node) {

    node *pTraverse = root;
    node *currentParent = root;
    }
以下是错误:

    assign6.c: In function 'insert_node':
    assign6.c:15: error: 'pTraverse' undeclared (first use in this function)
    assign6.c:15: error: (Each undeclared identifier is reported only once
    assign6.c:15: error: for each function it appears in.)
    assign6.c:16: error: 'currentParent' undeclared (first use in this function)

不确定,但我认为相同地命名
struct
typdef
可能是您的问题。尝试将其更改为
struct node\u struct
,看看会发生什么。
node*node
-嗯,参数名称的有趣选择。使用其他东西(除了
root
之外的任何东西看起来都不错)。是的,我们有一个赢家,谢谢你。现在回想起来,这是一个相当愚蠢的命名。也要感谢其他人。为了清晰起见,我已经将我的结构重命名为node_struct,现在每个人都在工作。谢谢大家!我认为@WhozCraig没有要求您更改结构名称,
struct node
非常好。与类型名冲突的是您选择的变量名。因此,与插入节点(node*root,node*node)不同,您需要使用类似于插入节点(node*root,node*other)@tivn的东西;但Politank-Z做到了(见第一条评论)。