struct mit arrays initialisieren
-
hi,
angenommen ich hab sowastypedef struct __TEST { int member1[73]; int member2[59]; int member3[156]; } TEST;
wenn ich die so initialisiere
... TEST t = { 1,2,3,4,5,....., // 73 mal igendwas 1,2,3,4,5......, // 59 mal irgendwas 100 }; ...
landet die 100 dann *garantiert und immer* in t.member3[0]
oder ist daran irgendwas 'undefiniertes'?danke im voraus...
-
Soweit ich das weiß, landet die 100, dann "garantiert und immer" in t.member2[59] (das sollte, wenn kein Padding dazwischenschlägt, mit member3[0] zusammenfallen) - eventuell könntest du die einzelnen Array-Initialisierer jeweils in Klammern einfassen, um die Zuordnung zu ermöglichen:
TEST t = { {1,2,3,4,...}, //member1 {1,2,3,4,...}, //member2 {100,101,...} //member3 };
-
CStoll schrieb:
Soweit ich das weiß, landet die 100, dann "garantiert und immer" in t.member2[59] (das sollte, wenn kein Padding dazwischenschlägt, mit member3[0] zusammenfallen) - eventuell könntest du die einzelnen Array-Initialisierer jeweils in Klammern einfassen, um die Zuordnung zu ermöglichen:
um sowas wie padding und alignment geht's mir. eigentlich 'weiss' der compiler doch wie er die struct anlegt und sollte beim initialisieren padding etc. berücksichtigen - auch ohne extra zu klammern. ist das so?