【问题标题】:segmentation fault on linked list node链表节点上的分段错误
【发布时间】:2016-05-22 11:03:53
【问题描述】:

我想过链表,但是有分段错误。 但是我不知道,为什么这段代码有内存泄漏...

我刚试过

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;
        }

【问题讨论】:

  • 这看起来像 C.

标签: c++ linked-list fault


【解决方案1】:

问题可能是您试图访问一个不存在的内存位置。在这种情况下,首先检查您想要访问的内存位置是否可以访问总是有帮助的。在您的情况下,如果有助于添加以下内容:

if(ptr->r_data == data1 && ptr->u_node!=NULL)
   {
    next = ptr->u_node;
    ......

以这种方式做事可以避免陷入细分问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-19
    • 1970-01-01
    • 2021-03-21
    • 2015-02-01
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多