Mi auto-correggo... non ho tenuto conto del padding.
A questo punto ti conviene fare tutto a mano, giocando con i puntatori:
codice:
printf("Carattere: %c\n", msg[0]);
printf("Intero 4 byte: %d\n", *((int *) (msg + 1)));
printf("Intero 2 byte: %d\n", *((short int *) (msg + 5)));
Ciao.