-1
void List::insertBack(ListItemType newItem)
{
ListNode *p;
ListNode *q;
if (head == NULL)
{
p = new ListNode;
p -> item = newItem;
p -> next = head;
head = p;
}
else
{
p = new ListNode;
q -> next = p;
q = head;
while (q-> next != NULL)
{
q = q->next;
};
p -> item = newItem;
p -> next = NULL;
}
}
我正試圖在C++中鏈接列表的末尾添加一個節點。我對這個概念有點新,所以對我來說有些複雜,當我看到其他答案時,我不會按照他們的目標行事?我做錯了什麼導致分段錯誤?當在末尾添加節點到鏈接列表時,C++中的分段錯誤
ListNode * q; [SNIP] q - > next = p; <<<< q沒有設置,崩潰! – willll
解決此類問題的正確工具是您的調試器。在*堆棧溢出問題之前,您應該逐行執行您的代碼。如需更多幫助,請閱讀[如何調試小程序(由Eric Lippert撰寫)](https://ericlippert.com/2014/03/05/how-to-debug-small-programs/)。至少,您應該\編輯您的問題,以包含一個[最小,完整和可驗證](http://stackoverflow.com/help/mcve)示例,該示例再現了您的問題,以及您在調試器。 –
我投票結束這個問題作爲題外話,因爲你沒有表現出努力使用調試器來調查你的代碼的執行,並且SO不是一個調試服務。 –