Hallöchen, ich bin total verwirrt bzgl. unions. Ich habe folgende Situation:
1 | struct a1 |
2 | {
|
3 | unsigned int x1; |
4 | unsigned int x2; |
5 | |
6 | };
|
7 | |
8 | struct a2 |
9 | {
|
10 | unsigned int x3; |
11 | unsigned int x4; |
12 | |
13 | };
|
14 | |
15 | |
16 | |
17 | union p |
18 | {
|
19 | struct a1 testa1; |
20 | struct a2 testa2; |
21 | |
22 | };
|
23 | |
24 | union p testp; |
Aus irgendwelchen Gründen liegt die Elemente x1 und x3 auf der selben Speicherstelle. D.h. wenn ich schreibe: testp.a1.x1=1, ändert sich auch x3. Das union die Daten hintereinander im Speicher anordnet ist mir klar, aber hintereinander und nicht übereinander!? Was läuft da falsch? Vielen Dank für eure Antworten!