【发布时间】:2018-03-09 17:02:21
【问题描述】:
我正在尝试编写二叉搜索树,但是我的 Clion IDE 在各个地方都给我这个错误:Struct TreeNode doesn't have a field 'balance'。
我选择了“平衡”作为示例,但这发生在结构中的每个字段上。
我的整个头文件如下:
#define CARD_SIZE 15
typedef struct TreeNode *node_ptr;
typedef struct TreeNode{
char card[CARD_SIZE];
int balance;
node_ptr left;
node_ptr right;
node_ptr parent;
}Node;
还有一个发生错误的例子是:
bool updateSearch(int balance, char *card) {
node_ptr node = searchNode(card,tree.root);
if(node){
node->balance += balance; //Right here
return true;
}
return false;
}
什么可能导致这个问题?
【问题讨论】:
-
你确定第二个sn-p中的
node_ptr和第一个一样吗? 'node_ptr' 非常通用,很容易被重新定义。 -
@PaulFloyd 是的,这是唯一的
node_ptr定义。 -
我试图重现。 (我必须添加一些东西以使其成为 C 中的 minimal reproducible example。)最后,我得到了它,直到出现链接错误。因此,没有编译问题了...这里的链接:ideone
-
我不太确定,但 gcc 6.3 证明了我:
bool、true和false不是 C。(不是标准)你用C++ 编译器? -
@PaulR 是的,没有分号或任何东西。我已经用我的整个头文件更新了我的帖子。第一个错误(除了从未使用过的警告)是帖子中的错误。