创建两个链接列表时出现分段错误

时间:2014-01-07 21:44:04

标签: c++ linked-list segmentation-fault initialization singly-linked-list

以下C ++代码引发了分段错误错误。当只创建一个链表并显示时,所有工作文件。但在引入第二个列表后会导致错误。 这里的目标是创建和显示两个链接列表。

#include<iostream>
using namespace std;
struct node {
    int value;
    node* link;
};

void insert_into_list(node** head, int value) {
node* temp = new node;
temp->value = value;
temp->link = (*head);
(*head) = temp;

}
void display_link(node* he) {
cout << "Link List:\n";
node* head = he;
while (head != NULL) {
    cout << head->value;
    if (head->link != NULL)
        cout << "->";
        head = head->link;
}
cout << endl;
}

int main() {

    node* head1;
    node* sec;
    insert_into_list(&head1, 9);
insert_into_list(&head1, 7);
insert_into_list(&head1, 6);

display_link(head1);
cout<<"LKL"<<endl;


insert_into_list(&sec, 8);
insert_into_list(&sec, 6);
insert_into_list(&sec, 7);

display_link(sec);

}

2 个答案:

答案 0 :(得分:2)

您的程序有未定义的行为,因为变量

node* head1;
    node* sec;

未初始化。

改为使用

node* head1 = 0;
node* sec = 0;

答案 1 :(得分:-3)

这对head1有用。

你应该给你的清单一个正确的结局。

node* head1 = 0;

如果您为node提供了构造函数,例如

,您也可以自助
node(int value, node* next);