小编Sim*_*rfe的帖子

为什么该程序出现分段错误?

我目前正在尝试解决学习C ++入门课程的编码挑战,而我只是想了解我遇到的分段错误。

我正在编写一个给定的函数,将节点插入到链表的末尾。这个想法是,给定整数输入,第一个输入将被视为列表末尾的一部分,因为它的指针成员变量为nullptr。之后,必须附加所有其他输入,以便它们的插入发生在该空节点之前。

这是函数的第一部分:

SinglyLinkedListNode* insertNodeAtTail(SinglyLinkedListNode* head, int data) {


if(head == nullptr) //if the list is empty
{
    head -> next = new SinglyLinkedListNode(data);
    return head;
}

return head;

} 
Run Code Online (Sandbox Code Playgroud)

但是函数的这一部分给了我一个分段错误错误:

head -> next = new SinglyLinkedListNode(data);
Run Code Online (Sandbox Code Playgroud)

这些是类声明:

#include <bits/stdc++.h>

using namespace std;

class SinglyLinkedListNode {
 public:
    int data;
    SinglyLinkedListNode *next;

    SinglyLinkedListNode(int node_data) {
        this->data = node_data;
        this->next = nullptr;
    }
     };

class SinglyLinkedList {
public:
    SinglyLinkedListNode *head;

    SinglyLinkedList() {
        this->head = nullptr;
    }

 };
Run Code Online (Sandbox Code Playgroud)

和主要:

int …
Run Code Online (Sandbox Code Playgroud)

c++ linked-list segmentation-fault

2
推荐指数
1
解决办法
87
查看次数

标签 统计

c++ ×1

linked-list ×1

segmentation-fault ×1