错误:取消引用指向不完整类型的指针(代码块,C语言编程)

错误:取消引用指向不完整类型的指针(代码块,C语言编程),c,pointers,compiler-errors,codeblocks,binary-search-tree,C,Pointers,Compiler Errors,Codeblocks,Binary Search Tree,错误:取消引用指向不完整类型的指针 代码块在main.c行10 print_bstree->root取消引用指向不完整类型的指针时给了我这个错误,而我正在创建一个二进制搜索树,我找不到这个错误的原因 英国夏令时 英国夏令时 main.c 错误消息涉及main.c中的第10行,print\u bstree->root print_bst(tree->root); 是的,这是行不通的,main.c没有包含任何可以告诉它树有根元素的东西 解决此问题的最简单方法是将树的定义移动到BST.

错误:取消引用指向不完整类型的指针

代码块在main.c行10 print_bstree->root取消引用指向不完整类型的指针时给了我这个错误,而我正在创建一个二进制搜索树,我找不到这个错误的原因

英国夏令时

英国夏令时

main.c

错误消息涉及main.c中的第10行,print\u bstree->root

    print_bst(tree->root);
是的,这是行不通的,main.c没有包含任何可以告诉它树有根元素的东西

解决此问题的最简单方法是将树的定义移动到BST.h中,main.c可以在其中访问它

是的,这是行不通的,main.c没有包含任何可以告诉它树有根元素的东西


解决此问题的最简单方法是将树的定义移动到BST.h,main.c可以在其中访问它。

main中包含的头文件

#include "BST.h"
不包含结构节点和树的定义。它只是宣布了它们

typedef struct Node Node;
typedef struct Tree Tree;
因此在thsi声明中

   print_bst(tree->root);
编译器将发出错误,因为它不知道结构树是否有数据成员根


另外,数据成员void*dataPtr可能会从结构节点中删除,因为它没有被使用。对于临时对象,可以在函数中声明局部变量。

包含在main中的头文件

#include "BST.h"
不包含结构节点和树的定义。它只是宣布了它们

typedef struct Node Node;
typedef struct Tree Tree;
因此在thsi声明中

   print_bst(tree->root);
编译器将发出错误,因为它不知道结构树是否有数据成员根

另外,数据成员void*dataPtr可能会从结构节点中删除,因为它没有被使用。对于临时对象,可以在函数中声明局部变量