Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/11/2009, 08:52
miguelaniez
 
Fecha de Ingreso: octubre-2008
Mensajes: 44
Antigüedad: 16 años, 5 meses
Puntos: 1
Ayuda con sprintf

Hola, tengo problemas con sprintf, y no se que hacer ya, tengo este trozo de código:
Código:
void InsertarDatos(void *arg)
{
	Email *nuevo;	
	char *cuerpo;
	
	pthread_mutex_lock(&b->mutex);  //protegiendo la región crítica
	(b->nEmails)++;
	cuerpo=(char *) malloc (sizeof (char));
	nuevo=(Email *) malloc (sizeof (Email));
	nuevo->dato.id=b->nEmails;
	nuevo->dato.from="xxxx";
	sprintf(cuerpo,"Cuerpo del email %d",b->nEmails);
	nuevo->dato.body=cuerpo;
	nuevo->next=NULL;
        .......
Cuando ejecuto obtengo:
Identificador de email: 12576
Remitente: xxxx
Cuerpo del mensaje: Cuerpo del email 1
---------------------------------------
Identificador de email: 12832
Remitente: xxxx
Cuerpo del mensaje: Cuerpo del email 2
---------------------------------------

Y debería ser Identificador de email: 1 y luego 2.
He estado depurando y si miro la variable nuevo->dato.id despues de nuevo->dato.id=b->nEmails; lo saca bien pero despues de hacer el sprintf me saca los otros valores.

A que se debe esto??

Agradecería vuestra ayuda.