El problema es el alineamiento de la estructura, todo depende del compilador que utilices, y de los parametros que son pasados al compilador, generalmente los miembros de una estructura se alinean al tamaño de un DWORD, debido a que la accesos a posiciones de memoria por la CPU son más rapido si estan alineados , por eso mismo debes verificarlo, que compilador estas usando?
en VC++ se podes hechar una miraba a /zp
o usar
#pragma pack(push)
#pragma pack(alineamiento)
// Tu estructura
#pragma pack(pop)
en VC++ se podes hechar una miraba a /zp
o usar
#pragma pack(push)
#pragma pack(alineamiento)
// Tu estructura
#pragma pack(pop)