我想过链表,但是有分段错误。 但我不知道,为什么这段代码有内存泄漏......
我刚试过
codeblock说,ptr = next; < - 这部分有分段错误。
if(head == NULL)
{
head = new Nodes;
head->r_data = data1;
head->u_data = data2;
head->r_node = NULL;
head->u_node = NULL;
}
else
{
Nodes *ptr;
ptr = head;
Nodes *next;
next = head->r_node;
while(ptr != NULL)
{
if(ptr->r_data == data1)
{
next = ptr->u_node;
while(ptr != NULL)
{
if(ptr->u_data < data2)
{
ptr = next;
next = ptr->u_node;
}
else
{
break;
}
}
break;
}
else if(ptr->r_data < data1)
{
ptr = next;
next = ptr->r_node;
}
}
ptr->r_data = data1;
ptr->u_data = data2;
ptr->r_node = NULL;
ptr->u_node = NULL;
}
答案 0 :(得分:0)
问题可能在于您尝试访问不存在的内存位置。在这种情况下,首先检查您想要访问的内存位置是否可访问始终是有帮助的。在您的情况下,如果有助于添加如下内容:
if(ptr->r_data == data1 && ptr->u_node!=NULL)
{
next = ptr->u_node;
......
以这种方式做事将使您免于陷入细分问题。