0
我無法解決下面的函數中的錯誤。該函數的目的是按照升序將數字插入鏈表中。<0xC0000005>插入鏈接列表時出錯
當列表爲空/插入第一個節點時,此函數可以正常工作,但在嘗試插入節點後出現錯誤Process returned -1073741819 <0xC0000005>
。
Node *orderedInsert(Node *p, int newval)
{
Node* q = (Node*)malloc(sizeof(Node));
q->data = newval;
if(p == NULL || newval <= p->data)
{
q->next = p;
return q;
}
else
{
Node* tmp = p;
while(tmp != NULL && tmp->data <= newval)
{
tmp = tmp->next;
}
q->next = tmp->next;
tmp->next = q;
return p;
}
}
我意識到0xC0000005錯誤代表訪問衝突;並試圖進行調試時,我注意到訪問tmp->next
不會給我任何預期的結果:我猜我的tmp
節點有什麼關閉,我只是不知道什麼以及如何解決它。
任何人都可以幫助我瞭解我做錯了什麼嗎?
甜。那正是我的問題。謝謝你的好解釋! – BloopyBlop 2014-12-07 06:02:42