Ich habe eine Struktur wie folgt definiert:Warum ist offsetof (member) gleich groesse (struct)?
struct smth
{
char a;
int b[];
};
Als ich sizeof
und offsetof
auf diese Struktur nennen:
cout << sizeof(struct smth) << endl;
cout << offsetof(struct smth, b) << endl;
Ausgang ist:
4
4
Wie kommt es, wenn die Größe der stuct ist 4 und char verwendet 1 Byte, der Offset des int-Arrays ist 4? Warum gibt es eine Art Polsterung? Warum belegt das int-Array überhaupt keinen Platz?
Sie meinen 'offsetof (struct smth, b)', oder? –
@CarlNorum Ja, das tue ich. Bearbeitet. – bugra
Ist es C oder C++? Sie sind anders. –