Ver Mensaje Individual
  #3 (permalink)  
Antiguo 30/12/2008, 14:44
juancxo
 
Fecha de Ingreso: octubre-2008
Mensajes: 23
Antigüedad: 15 años, 7 meses
Puntos: 3
Respuesta: problema con lista enlazada c++

gracias poi ya voy cojiendo conceptos que tenia erroneos, bien ahora mismo sin en mi programa principal no utilizo el comando delete no tengo errores, ya tengo la lista implementada, -> es util ;) y definir las cabezeras y las implementaciones fuera de la clase... resuelto eso tengo otro problema
debo utilizarlo para poder volver a utilizar la estructura grafo que utiliza la etructura lista y no colapsar la memoria, libero mam y creo otra estructura. la clase grafo se representa con una tabla de dispersion abierta, es decir un array de [MAX_NODOS] de listas implementadas en celda


class grafo
{

...

grafo();
~grafo();
void inserta(int l, int e);
bool buscarElem( int l, int e );

...

grafo::~grafo()
{

delete[] listas;

}

...

}


la llamada en el main es, dentro de un bucle para resolver un numero variable de laberintos

int main(){

...

grafo *laberinto=new grafo();

...

delete laberinto;
}


el delete es donde produce el error tras una primera buena ejecucion. el error es el siguiente:

*** glibc detected *** ... free(): invalid next size (fast) ...

======= Backtrace: =========
...
======= Memory map: ========
...

el error lo produce cuando el debugger esta en la linea del destructor del tipo grafo, gracias poi se agradece la ayuda, el programa como imaginaras es para la uni. thank

Última edición por juancxo; 30/12/2008 a las 14:55