请求成员不是结构或联合错误

时间:2017-06-30 18:22:29

标签: c struct

我在网上搜索了上述错误,但人们主要谈论访问结构字段的错误方式( - > vs。)。我试过了,但我仍然收到同样的错误。 我有这两个结构:

struct Node_ {
    int num;
    G12_t* G12;
}node_t;

struct G12_{
    int level;
    int size;
    G12_t* next;
}G12_t;

当我想在node_t中访问G12_t的级别字段时,我收到上述错误。我可以访问以下级别字段:

node_t* pNode;

pNode->G12->level = 0;

1 个答案:

答案 0 :(得分:3)

您似乎尝试为这两种类型创建typedef,但您没有使用typedef关键字。您所做的是创建一个名为struct G12_的{​​{1}}实例和一个名为G12_t的{​​{1}}实例。

您需要在每个关键字之前添加struct Node_关键字。此外,您需要在node_t之前定义typedef,因为后者使用前者,并且您可以在其定义的结构中使用G12_t名称。您需要使用完整的结构名称:

node_t