我寫含有以下結構的節點單鏈表上執行功能的程序:C++鏈表 - 插入節點功能不更新值出來的功能範圍
typedef int ITEM;
typedef struct NODE* NODEptr;
struct NODE
{
ITEM data;
NODEptr next;
};
而這是功能我打電話給一個節點添加到列表的頭部(hdlist文件指向列表頭):
void addToHead(NODEptr &hdList, ITEM input)
{
NODEptr newNode = new NODE;
newNode->data = input;
newNode->next = nullptr;
hdList = newNode;
}
但是我發現,同時使用調試器未更新的hdlist的值當程序葉該函數即使通過引用傳遞,我也是不知道爲什麼。
非常感謝您的幫助和建議。
編輯:按照要求,完整的代碼在這裏:http://pastebin.com/bLv0S2QG 還有我與Visual Studio編譯2013
看起來你應該將'newNode-> next'設置爲'hdList'只要確保'hdList'被初始化爲'nullptr'。 – ooga
@ooga回答此問題! –
爲宏保留ALL UPPERCASE有助於避免名稱衝突和無意的文本替換,並且在眼睛和耳朵上也更容易。作爲與代碼維護人員良好溝通的一個問題,說T *比說'typedef T * T_ptr'然後'T_ptr'更短更清晰。 –