por
pobrecito hablador
el Lunes, 30 Octubre de 2006, 22:12h
(#835877)
A ver, no te voy a compilar el codigo para ver que pasa pero prueba esto.
Veo que hay un campo char*, campo al que no se le reserva ninguna memoria nunca. Recoges en principal y pasas el puntero... no me gusta. Cuando entre una cadena de parametro haz un new char, tamaño a reservar: strlen(cadena_entrada)
Igualmente para leer una cadena hay que reservar antes. Claro que lo tienes funcionara...a veces.
Esto es un error muy tipico, ten cuidado con los punteros (que estan en portada por cierto :)
por
pobrecito hablador
el Lunes, 30 Octubre de 2006, 23:22h
(#835899)
Coincido con este hombre, no reservas espacio para el char. Aunque no coincido en el tamaño de la reserva: tienes que reservar strlen(cadena_entrada) + 1, para que quepa el terminador \0 del final de la cadena.
Punteros
(Puntos:0)Veo que hay un campo char*, campo al que no se le reserva ninguna memoria nunca. Recoges en principal y pasas el puntero... no me gusta. Cuando entre una cadena de parametro haz un new char, tamaño a reservar: strlen(cadena_entrada)
Igualmente para leer una cadena hay que reservar antes. Claro que lo tienes funcionara...a veces.
Esto es un error muy tipico, ten cuidado con los punteros (que estan en portada por cierto :)
Re:Punteros
(Puntos:0)En nodo.cpp, despues de declarar *apellido:
apellido = (char *) malloc(sizeof(char)*(strlen(apell)+1));
No te olvides también de liberar la memoria de la cadena cuando destruyas un nodo.