Supportnet / Forum / Anwendungen(Java,C++...)
Speicherbelegung unter C
Frage
Hallo,
kann mir vielleicht jemand erklären warum C bei der Vereinbarung eines Integerwertes in einer Struktur ein Byte mehr Platz beansprucht als es eigentlich sollte ?????
#include <stdio.h>
typedef struct
{
long integer;
char string1[5];
char string2[7];
char string3[3];
} STINTVORNE;
main ()
{
printf ("SizeOf von Integer : %d\n", sizeof (intvorne.integer));
printf ("SizeOf von String1 : %d\n", sizeof (intvorne.string1));
printf ("SizeOf von String2 : %d\n", sizeof (intvorne.string2));
printf ("SizeOf von String3 : %d\n", sizeof (intvorne.string3));
printf ("SizeOf von STINTVORNE : %d\n", sizeof (STINTVORNE));
}
Antwort 1 von AnPapaSeiBua
Die Größe von Strukturen wird bei 32-Bit-System auf ein Vielfaches von 4 Byte gesetzt. Deine Struktur hätte 19 Byte, also wird auf 20 aufgerundet. 32-Bit-Prozessoren können auf diese Adressen schneller zugreifen.
MfG
Jürgen
MfG
Jürgen

