2013-02-09 60 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

相關問題