C语言:如何访问二叉搜索树嵌套队列中的lineNum变量?报错解决
问题解决:指针访问不完整类型错误
错误原因很明确:你在treeNode结构体里使用了struct queNode*类型的指针,但struct queNode这个带标签的结构体从未被正确定义。
看你的代码,第一个结构体是匿名结构体,仅通过typedef给它起了别名queNode,但struct queNode这个标签从未被声明或定义过。编译器看到struct queNode*时,只知道这是一个结构体指针,但不清楚它的内部结构,因此不允许你通过它访问lineNum成员。
解决办法
修改第一个结构体的定义,给它加上queNode标签,让struct queNode成为合法的、有完整定义的类型:
// 给结构体加上标签queNode,同时typedef成queNode typedef struct queNode { int lineNum; struct queNode *next; } queNode; typedef struct { char word[64]; struct treeNode *left; struct treeNode *right; // 现在struct queNode已有完整定义,编译器可识别其成员 struct queNode *front; struct queNode *rear; } treeNode;
修改后,treeNode->front->lineNum就能正常访问lineNum成员了。
内容的提问来源于stack exchange,提问作者user18370332
相关产品推荐
相关产品推荐

