【发布时间】:2012-07-09 22:03:25
【问题描述】:
我正在编写一个 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;
}
【问题讨论】:
-
请以可读的格式格式化您的代码!
-
它在哪一行中断?或者至少是哪种方法?
-
你用过调试器吗?不?为什么不呢?
-
hi luchian..我很抱歉,实际上我是新手..你能告诉我应该如何使用调试器..我正在 COdeblocks IDE 中开发它...
标签: c++