Ok это мой код: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 УСПЕШНО», но «RUN FAILED», и когда я его отладки появляется сообщение SIGSEGV , линия, которая, кажется, есть ошибка есть:
*PrimerNodo->siguiente=*UltimoNodo;
но если я снова запустите программу без линий:
ListaCircular *a=new ListaCircular();
cout<<a->PrimerNodo->siguiente<<endl;
то программа имеет успешную сборку и запуск.
Как я могу сделать этот «cout» успешным?
У вас нет Nodos, только указатели на Nodos. – QuentinUK
Что именно вы хотите распечатать? –
Actualy cout не важен, это как способ убедиться, что PrimerNodo-> siguiente указывает на UltimoNodo, реальный факт заключается в том, что я должен указать PrimerNodo-> siguiente на UltimoNodo –