我想尝试以下页面上的链接列表示例:How to create Linked List using C++
到目前为止,这是我的代码:

#include <iostream>
using namespace s-td;

class node {
public:
    int value;
    node *next;
};

int main() {
    node *head = nullptr;

    node *temp1;
    temp1 = new node();
    temp1->value = 1;
    temp1 = head;

    while(temp1->next!=nullptr) {
        temp1 = temp1->next;
    }
    return 0;
}

但是不幸的是我得到了Segmentation fault
我认为这部分是错误的:
while(temp1->next!=nullptr) {
    temp1 = temp1->next;
}

最佳答案

您的代码有两件事是错误的:

a)您正在分配temp1 = head,在您的情况下,它等于temp1 = nullptr
b)您没有将->next初始化为nullptr,因此您的while条件可能满足或可能不满足(未定义的行为)

10-07 22:17