Zitat
Wenn ich den char[5] weglasse nimmt er 16 Byte (8+8 ?),
wenn ich den double weglasse 12 Byte und (8+4 ?)
wenn ich den int weglasse sind's auch 16 Byte (8+8 ?).
Bei mir schauts so aus:
12 Byte (4 Byte int + 8 Byte double)
12 Byte (5 Byte char + 3 Byte ungenutzt + 4 Byte int)
16 Byte (5 Byte char + 3 Byte ungenutzt + 8 Byte double)
Bin auf einer P4-2000 Workstation mit Linux und gcc-Compiler
Also hier ist ganz klar die 4 Byte-Block Unterteilung.
Ich vermute einfach mal, das bei dir die Speicherblockgroesse so berechnet wird:
Der groesste Typ (double 8 Byte) bestimmt die Speicherblockgroesse und somit belegt jeder Typ ein vielfaches dieser 8 Byte, mindestens aber 8 Byte.
Laesst du den double weg, ist der int der groesste Typ, die Blockgroesse betraegt also 4 Byte.
Koennte vielleicht am Compiler liegen, bin mir aber echt nicht so sicher!