Salve,
stò scrivendo un programmino in c ma non mi tornano i conti.

io creo un pacchetto di 100 byte cosi:
invio
codice:
uint32_t idmsg = 0;
uint32_t pkt[100];
setto a 0 lo spazio per i 100 byte
codice:
memset((char*)pkt,0,100);
inserisco il msg nei primi 4 byte
codice:
pkt[0]=idmsg;
invio(pkt)....

ricevo:
codice:
ricevo(msg)...
uint32_t valore;
char * pktricevuto = msg;
// alloco 100 byte per il nuovo msg
codice:
new_el->buf = (char*)malloc(100 * sizeof(char));
//copio i primi 100 byte di pktricevuto in buf(che è un puntatore ad un char della stuttura)
codice:
memcpy(new_el->buf,pktricevuto,100);
// copio i primi 4 byte del puntatore puntato da new_el->buf in valore
codice:
memcpy(valore,new_el->buf,sizeof(uint32_t));
però se faccio:
codice:
printf("leggo pkt %u e lo scrivo in memoria\n",valore);
riesce a leggermi fino al numero 127, quindi il primo byte e poi mi stampa varie sequenze di numeri;

dove sbaglio?