带有链表基本实现的 C++ 中的分段错误(核心转储)

沙耶罗伊

我知道这里有很多问题是基于在 C++ 中转储的分段错误核心,但我无法解决此错误。我的代码很容易创建链接列表并打印它。我想知道为什么它是错误的,因为我是这个主题的新手,想了解更多信息以及它是如何工作的以及错误意味着什么。

代码如下:


using namespace std;
struct node
{
    int data;
    node *next;
};

node *head =NULL;
void addnode(int x)
{
    node *temp =new node;
    temp->data = x;
    temp ->next = NULL;
    if(head==NULL)
    {
        head = temp;
    }
    else
    {
        node *p =head;
        while(p!=NULL)
        {
            p=p->next;
        }
        p->next =temp;
        temp =NULL;
    }
}

void display(node *head)
{
    node *temp=new node;
    temp = head;
    while(temp!=NULL)
    {
        cout<<temp->data<<" , ";
        temp = temp->next;
    }
    cout<<endl;
}

int main()
{
    cout<<"Hello World";
    node work;
    addnode(12);
    addnode(11);
    addnode(1);
    addnode(22);
    display(head);

    return 0;
}

很可能我弄乱了头指针,这就是为什么会发生这样的错误,但我想知道我的代码在这里做错了什么。

谢谢。非常感激 。

萨胡

用于

while(p!=NULL)
{
    p=p->next;
}
p->next =temp;

是个问题。当循环中断时,p是一个 NULL 指针。之后,p->next就不好说了。您需要使用:

while (p->next != NULL)
{
    p = p->next;
}
p->next = temp;

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

C中的分段错误(核心转储)(带有GMP库)

具有动态数组的C程序中的分段错误(核心转储)错误

在 C++ 中输入向量中的所有值后出现分段错误(核心转储)

C 中的分段错误(核心转储)

尝试将浮点数读入 C++ 中的链表时出现分段错误(核心转储)

奇怪的核心转储错误在C中的链表示例

如何修复C中的分段错误(核心转储)错误

分段错误:C中的核心转储错误

错误:分段错误,核心转储,在 c 编程中

在 C 程序中接收分段错误(核心转储)

C 中的分段错误(核心转储) - 使用 PTHREADS 时

使用 fscanf 时 C 中的分段错误(核心转储)

C程序中的分段错误(核心转储)以制作直方图

C 代码中的分段错误(核心转储)

C - 获取分段错误(核心转储)

C ++:分段错误(核心转储)问题

分段错误(核心转储)C ++-指针

分段错误(核心转储)C++

分段错误(核心转储)C

带有strcpy()的分段错误(核心转储)错误(可疑)

创建链表会出现分段错误(核心转储)错误

c分段核心转储?

如何在C中的CPU调度仿真程序中解决分段错误(核心转储)错误?

C 程序错误 - 分段错误(核心转储)

C编程分段错误(核心转储)错误

分段错误(核心转储) - C++ 错误

数组初始化中C中的分段错误(核心转储)

c中的分段错误(核心已转储)

使用C从核心转储获取导致分段错误的地址