struct größe
-
hallo leute
ich hab grad folgenden test gemacht:
struct test1 { char a1[1]; char a2[4]; char a3[2]; char a4[1]; }; struct test2 { char a1; int a2; short a3; char a4; }; auto main(int, char**) -> int { std::cout << "sizeof(test1) = " << sizeof(test1) << std::endl; std::cout << "sizeof(test2) = " << sizeof(test2) << std::endl; return 0; }
ergebnis:
sizeof(test1) = 8 sizeof(test2) = 12
ich hab hier einfach all die verschiedenen membervariablen durch char arrays abgebildet.
ist es vom standard so geregelt das char-arrays immer ohne padding-bytes im speicher hintereinander abgelegt werden ? oder ist das vom compiler abhaengig ?Meep Meep
-
Da ein char die kleinste adressierbare Einheit ist, kann es auf jeder Adresse liegen.
Warum sollten da Padding-Bytes eingefügt werden, wenn kein Alignment nötig ist?