C/Visual C - Volcar Lista enlazada a una cadena

 
Vista:

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.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Volcar Lista enlazada a una cadena

Publicado por Nelek (816 intervenciones) el 30/04/2008 10:51:46
Para calcular el tamanyo puedes usar el comando "sizeof ( )". Depende de que tipo de elementos tenga la lista puedes hacerlo de varias maneras:

sizeof (Lista)

o bien

num_elementos * sizeof (elemento)

pero para tu caso, que cada elemento es variable otra opcion puede ser recorrer primero la lista con un bucle en donde calculas el tamanyo de cada cadena de caracteres y sumandolo a los anteriores.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Volcar Lista enlazada a una cadena

Publicado por jose (2 intervenciones) el 30/04/2008 12:32:20
Gracias, ya esta solucionado ;)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Volcar Lista enlazada a una cadena

Publicado por Nelek (816 intervenciones) el 02/05/2008 09:18:12
De nada :)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar