Hi Claudio, For alignment purposes, the compiler may stick in some padding bytes. If the designers of C wanted to be cruel, they could have forced you to put in the necessary padding or generate a compile time error. struct s2 { char a[6]; char pad[2]; int b; }; But they figured that was an implementation detail that the compiler could do for you. HTH, --Eljay