Volcar Lista enlazada a una cadena
Publicado por jose (2 intervenciones) el 28/04/2008 13:49:36
Hola buenas, estoy intentando hacer un volcado de los elementos de una lista enlazadaa a un char* para devolverla dspues, pero no lo consigo, tngo muchos problemas a la hora de reservar memoria. Estoy usando sprintf para volcar el contenido de cada nodo, pero cuando se completan x bytes, el buffer revienta.
char buffer[255];
char* log;
....
....
while(nodo!=NULL)
{
n=sprintf(buffer," Time: %s -> %s. ", ctime(&(nodo->item.time)), nodo->item.string);
strncat(log,buffer,254);
nodo = nodo->next;
}
Tambien he pensado en calcular el tamaño total de lista y reservar memoria para log con ese tamaño, pero no se como calcularlo.
Gracias.
char buffer[255];
char* log;
....
....
while(nodo!=NULL)
{
n=sprintf(buffer," Time: %s -> %s. ", ctime(&(nodo->item.time)), nodo->item.string);
strncat(log,buffer,254);
nodo = nodo->next;
}
Tambien he pensado en calcular el tamaño total de lista y reservar memoria para log con ese tamaño, pero no se como calcularlo.
Gracias.
Valora esta pregunta


0