typedef struct {
int lineNum;
struct queNode *next;
} queNode;
typedef struct {
char word[64];
struct treeNode *left;
struct treeNode *right;
struct queNode *front;
struct queNode *rear;
} treeNode;
所以我尝试通过treeNode(二叉搜索树节点)和front(队列节点)访问lineNum
我尝试了treeNode-〉front-〉lineNum,但是vscode告诉我“不允许指向不完整类类型“struct queNode”的指针”。我该怎么办
1条答案
按热度按时间vd8tlhqk1#
根本原因是你的结构是未命名的,但是你把它们作为命名的结构来引用,而不是使用typedef。快速解决方法是命名结构。你可以使用与typedef相同的名称,这是很常见的:
你不需要在
treeNode
定义中使用struct queNode
,因为typedef已经存在了,但是如果你想在所有地方都去掉struct
前缀,你可以在前面使用typedef结构:我注意到,根据这个错误消息,看起来你使用的是C编译器,因为C没有引用任何“类”。所以,在C中,你不需要typedef来使用它们,而不需要
struct
前缀,因为命名的结构与类型名是同义的。因此,如果您实际使用的是C++编译器,则可以简化为: