1. 程式人生 > >結構體指標作為函式引數傳遞卻無法傳值的有關問題

結構體指標作為函式引數傳遞卻無法傳值的有關問題

今天做C++作業遇到一個問題,需要寫一個函式(在連結串列中新增新的節點)將結構體指標作為形參,結果發現傳遞之後無法改變結構體的值,連結串列的長度還是沒變。通過查詢資料,發現把形參改為對結構體指標的應用即可解決問題。

原始碼:

struct Tnode
{
    string word;
    int counts;
    Tnode* left;
    Tnode* right;
};

void insert_Tnode(struct Tnode *L,string str,int numbers)
{
    struct Tnode *newd = new Tnode;//建立新節點
    if(newd == NULL)
        exit(1);
    newd->word = str;
    newd->counts = numbers;
    L->right = newd;
    newd->left = L;
    newd->right = NULL;

    L = newd;
}

執行後發現原來傳進來的L連結串列並沒有變化,對程式碼進行修改如下即可。

將函式的宣告進行修改為:

void insert_Tnode(struct Tnode *&L,string str,int numbers)

參考資料:http://bbs.csdn.net/topics/70168422