细分错误-链表实现

时间:2019-02-04 15:54:36

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

我在实现链表的代码中出现分段错误。任何帮助表示赞赏。谢谢。我在这里故意添加了struct方法。

struct node{
    int data;
    node *next;

    node(int data){
        this->data = data;
        this->next = NULL;
    }

    node(int data, node *next){
        this->data = data;
        this->next = next;
    }
    int getData(){
        return data;
    }
    node* getNextNode(){
        return next;
    }
};

class LinkedList {
    private: 
        node *head,*tail;
    public:
        linked_list(){
            head=NULL;
            tail=NULL;
        }
        void addNode(int data){
            node *temp = new node(data);
            if(head==NULL){
                head = temp;
                tail = temp;
            }
            else {
                tail->next = temp;
                tail = temp;
            }
        }
        void display(){
            node *temp;
            temp = head;
            cout<<"PRINTING LINKED LIST"<<endl; 
            while(temp!=NULL){
                cout<<temp->getData()<<" ";
                temp = temp->getNextNode();
            }
        }

};

调用以下代码时出现分段错误:

LinkedList myLinkedList;
myLinkedList.addNode(1);
myLinkedList.addNode(2);
myLinkedList.display();

堆栈溢出正在要求更多详细信息,我可以提出这个问题。放入一些乱码,请忽略以下部分: 儿童歌曲歌曲“矮胖子”的歌词:矮胖子坐在墙上,矮胖子跌倒了所有国王的马和所有国王的人。

1 个答案:

答案 0 :(得分:0)

问题在这里

ulimit -a

class LinkedList { private: node *head,*tail; public: linked_list() { head=NULL; tail=NULL; } 不是linked_list的构造函数,因为拼写不同。显然应该是这样

LinkedList

现在,您发布的代码应该尚未编译,或者至少应该已经生成了编译器警告消息。始终注意编译器的警告消息。