不命名类型

时间:2016-05-02 01:41:19

标签: c++

不知道为什么编译器会给出"'节点'没有命名类型"错误。

struct node;
struct node{
    int data;
    struct node* left;
    struct node* right;
};
struct node *nodes[1024];
nodes[1]->data = 1;
nodes[1]->left = NULL;
nodes[1]->right = NULL;

1 个答案:

答案 0 :(得分:5)

现在我假设您完全按照指定编写了代码:

struct node *nodes[1024];
nodes[1]->data = 1;
nodes[1]->left = NULL;
nodes[1]->right = NULL;

您遇到编译器错误的原因是因为它不是有效的C ++代码。

但是如果你将代码移动到一个函数中,它将编译得很好:

struct node *nodes[1024];

void AddFunction()
{
  nodes[1]->data = 1;
  nodes[1]->left = NULL;
  nodes[1]->right = NULL;
}