Jump to content

problema con una función de C++


Recommended Posts

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

 

 

v

oid 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

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 by RigoPerdido
Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...