我正在編寫一個C++程序來實現鏈接列表。在編譯時它不給任何錯誤,但在輸出窗口就變成空白,並計劃與鏈接列表程序面臨分段錯誤
list1.exe結束已經 遇到問題,需要關閉。
調試器響應:編程接收到的信號SIGSEGV,分段故障。
也許是因爲內存泄漏,但我無法弄清楚確切的錯誤,我們該如何解決這個問題。請問編劇中出了什麼問題,應該修正什麼?
下面是代碼
//Program to implement linked list
#include <iostream>
#include <cstdlib>
using namespace std;
class Node
{
int data;
Node * next;
public:
Node(){}
int getdata(){return data ;}
void setdata(int a){data=a;}
void setnext(Node* c){next=c;}
Node* getnext(){return next;}
};
class linkedlist
{
Node* head;
public:
linkedlist(){head=NULL;}
void print();
void push_back(int data);
};
void linkedlist::push_back(int data)
{
Node* newnode= new Node();
if(newnode!=NULL)
{
newnode->setdata(data);
newnode->setnext(NULL);
}
Node* ptr= head;
if(ptr==NULL)
{head=newnode;}
while ((ptr->getnext())!=NULL)
{
ptr=ptr->getnext();
}
ptr->setnext(newnode);
}
void linkedlist::print()
{
Node* ptr=head;
if(ptr==NULL)
{cout<<"null"; return;}
while(ptr!=NULL)
{
cout<<(ptr->getdata())<<" ";
ptr=ptr->getnext();
}
}
int main()
{
linkedlist list;
list.push_back(30);
list.push_back(35);
list.print();
return 0;
}
請格式化您的代碼! – Ashe 2012-07-09 12:30:00
在哪條線上折斷?或者至少是哪種方法? – Razvan 2012-07-09 12:30:07
你使用過調試器嗎?沒有?爲什麼不? – 2012-07-09 12:31:56