【问题标题】:Array of struct Error结构错误数组
【发布时间】:2017-12-19 17:17:49
【问题描述】:

这是我的代码:

typedef struct Node *link;
typedef struct Node
{           
    char data;
    int count;    
    link right;
    link left;
    link next; 
}nd;
node nd[100];
link current;

当我尝试在 main 中执行此操作时

current = current->nd[0].right;

它向我展示了:
[错误]“结构节点”没有名为“nd”的成员
我该如何解决?

【问题讨论】:

  • 您的currentlink 类型。 link 是一个没有名为 nd 的成员的结构。对我来说似乎很清楚。你的nd 是一个node 的数组,与current 完全分开。你希望他们之间有什么样的关系?它没有在您的代码中表达。
  • 抱歉错字,已编辑
  • @joejordishon 你的版本是错误的,没有意义
  • 那个编辑没有帮助。您现在刚刚创建了一个名为nd 的类型(其类型为struct Node)。 current 仍然是 link 类型,并且该结构仍然没有名为 nd 的成员。
  • C 是区分大小写的语言。因此,您的代码中的node 未定义。

标签: c arrays struct compiler-errors


【解决方案1】:

改变这个:

current = current->nd[0].right;

到这里:

current = nd[0].right;

或者,如果您已经为 current 分配了某些内容,请执行以下操作:

current = current->right;

【讨论】:

    【解决方案2】:

    您的意思似乎是以下。

    typedef struct Node *link;
    typedef struct Node
    {           
        char data;
        int count;    
        link right;
        link left;
        link next; 
    }node;
    
    
    node nd[100];
    link current;
    
    //...
    
    current = nd;
    current = current[0].right;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-02
      相关资源
      最近更新 更多