2013-02-09 63 views
0

我试图打印出存储在BST链接列表中的单词。当我尝试打印单词时,它给了我“解除引用指向不完整类型”错误。C:在BST打印输出时取消引用指向不完整类型错误的指针

我的打印功能位于BST结构的头文件中。在我的主要功能中,我可以在没有问题的情况下打印出来,但似乎并不想在此功能中打印。

//linked list struct 
struct ll_node 
{ 
    char * word; 
    struct ll_node * next; 
}; 



//BST struct 
struct bst_node 
{ 
    int occurs; 
    int diffOccurs; 

    struct bst_node * left; 
    struct bst_node * right; 

    struct ll_node * words; 
}; 



//printout function 
void * printTree(struct bst_node * currBST) 
{ 
    if(currBST == NULL) 
    { 
     return; 
    } 

    printf("%s\n", currBST->words->word); 

    printTree(currBST->left); 
    printTree(currBST->right); 

} 

回答

1

struct bst_nodestruct ll_node你应该使用currBST->words->word前两个定义。

+0

它们都被定义。整棵树已经建成,然后我打电话给打印声明。我可以将打印语句硬编码到我的主函数中,但在头文件中调用此函数似乎不起作用。 编辑:在我的实际代码中,打印功能位于结构之后,对不起,如果这是令人困惑的。 – nickbean01 2013-02-10 00:44:44

+0

如果两个结构都是在打印之前定义的,那么它不能是** this **错误信息(在打印之前构建树并不重要,问题是*源代码中定义和使用的顺序*。是“之前”,意思是“更接近源文件的开始”,而不是关于*在你的程序中做*事情的顺序)。 – 2013-02-10 04:14:47

+0

我明白了,谢谢你解决了这个问题。 – nickbean01 2013-02-10 18:12:25

相关问题