allora via "cast" nulla da fare a parte un warning su gcc ( visual manco se ne accorge ...)

la soluzione "parziale e incompleta " che ho trovato e' usare lo shift come segue :

packet_info[19]=(unsigned char)1233;
packet_info[20]=(unsigned char)1233>>8;

dovrei trovare ora una funzione che mi dica
34 e' grosso 1 byte;
1233 e' grosso 2 byte;

K e' grosso N byte

poi faccio un for del tipo:

// X e' la posizione del vattore da cui partire a scrivere il valore intero
for (i=0;i<N;i++)
{
vettore[ i + x]= valore_intero >> ( 8 * i ) ;
}

che ne dite ?