Cristian_titan Posted May 25, 2011 Report Share Posted May 25, 2011 Tengo un problema en una función con la que trato de insertar un valor en el comienzo de una lista circular, y el còdigo al ejecutarlo me da error de "violación de segmentos" :S me pueden ayudar plz? esta es la función void Lista::InsertarEnLista(particle info){ lista aux1,aux2; aux1=new _nodo; aux1->message=info; if(datos==NULL){ datos=aux1; aux1->sig=datos; } else{ aux2=datos->sig; cout<<aux2->sig; while(aux2->sig!=datos) aux2=aux2->sig; //LINEA DE ERROR aux2->sig aux2->sig=aux1; // datos=aux1; } } la clase Lista class Lista{ private: lista datos; public: bool ListaVacia(); void IniciarLista(); void DatosALista(); void InsertarEnLista(particle datos); particle BuscarEnLista(int index); particle EliminarDeLista(int index); }; las estructuras lista y particle typedef struct _nodo{ particle message; _nodo *sig; }*lista; typedef struct _particle{ string _text; int _index; }particle; les agradezco si me ayudan ^^ Link to comment Share on other sites More sharing options...
RigoPerdido Posted May 28, 2011 Report Share Posted May 28, 2011 (edited) Te falta darle un valor inicial a datos, por ejemplo, agrega el constructor de la clase y ahí asignas NULL: Lista() { datos=NULL; } En la primera inserción no se evalúa como NULL ya que no posee valor inicial (o como dicen, basura xD) ;) slds Edited May 28, 2011 by RigoPerdido Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now