Dear all,

Perhaps it's an easy/silly question but I don't understand how it works.

(I'm working in a debian)
I have declared a structure and I'm using the "sizeof" to get the size of this structure.

After the call I get that the total size is 64Bytes but if I get the size of each field and I add them manually I get that it should be 61Bytes...

Anyone knows why the result is not the same?

Thanks in advance

Javi



Code:



#include <stdio.h>
#include <sys/socket.h>

typedef struct Packet{
                //char transportIdentifier;
                int mode;
                int idPacket;
                int idMessage;
                int fragmentNumber;
                struct sockaddr source;
                struct sockaddr destination;
                int length;
                int totalLength;
                int* groupSet;
                unsigned char data[1];
};

int main (){

Packet infoPacket;

printf("Size of mode %d\n",sizeof(infoPacket.mode));
printf("Size of idPacket %d\n",sizeof(infoPacket.idPacket));
printf("Size of idMessage %d\n",sizeof(infoPacket.idMessage));
printf("Size of fragmentNumber %d\n",sizeof(infoPacket.fragmentNumber));
printf("Size of source %d\n",sizeof(infoPacket.source));
printf("Size of destination %d\n",sizeof(infoPacket.destination));
printf("Size of length %d\n",sizeof(infoPacket.length));
printf("Size of totalLength %d\n",sizeof(infoPacket.totalLength));
printf("Size of groupSet %d\n",sizeof(infoPacket.groupSet));
printf("Size of data %d\n",sizeof(infoPacket.data));

printf("Total Size of infoPacket = %d or %d or %d\n",sizeof(infoPacket),sizeof(Packet),sizeof(struct Packet));


}


Output:


Size of mode 4
Size of idPacket 4
Size of idMessage 4
Size of fragmentNumber 4
Size of source 16
Size of destination 16
Size of length 4
Size of totalLength 4
Size of groupSet 4
Size of data 1
Total Size of infoPacket = 64 or 64 or 64

_________________________________________________________________
Descarga gratis la Barra de Herramientas de MSN http://www.msn.es/usuario/busqueda/barra?XAPID=2031&DI=1055&SU=http%3A//www.hotmail.com&HL=LINKTAG1OPENINGTEXT_MSNBH


--
To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to