確定這是我的代碼:SIGSEGV(分段故障)C++指針
#include <iostream>
using namespace std;
class Nodo{
public:
Nodo *siguiente,*anterior;
string Nombre,Curso,Posicion;
int carnet;
Nodo(){
siguiente=anterior=NULL;
Nombre=Curso="";
carnet=0;
}
};
class ListaCircular{
public:
Nodo *PrimerNodo,*UltimoNodo;
ListaCircular(){
*PrimerNodo->siguiente=*UltimoNodo;
}
};
int main(){
ListaCircular *a=new ListaCircular();
cout<<a->PrimerNodo->siguiente<<endl;
return 0;
}
當我嘗試運行它,它說:「BUILD SUCCESSFUL」,而是「運行失敗」,而當我調試它出現在SIGSEGV消息,似乎有一個錯誤的行是:
*PrimerNodo->siguiente=*UltimoNodo;
,但如果我再次運行程序,而不線:
ListaCircular *a=new ListaCircular();
cout<<a->PrimerNodo->siguiente<<endl;
那麼程序就有了成功的構建和運行。
我怎樣才能讓「cout」成功?
你沒有任何Nodos,只有指向Nodos的指針。 – QuentinUK 2013-03-10 18:36:20
你想要打印什麼? – 2013-03-10 18:39:13
實際上,cout並不重要,就像確保PrimerNodo-> siguiente指向UltimoNodo的一種方式,真正的事實是我必須將PrimerNodo-> siguiente指向UltimoNodo – 2013-03-10 18:44:10