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