Adressen von array Elementen nicht richtig?



  • Hallo!

    Ich habe ein Problem mit meinem Array, welchen ich mit Elementen von einer Struktur fülle. Also so ungefähr:

    typedef struct {
    int a;
    int b;
    } numbers;
    
    numbers all[5];
    numbers one = {2,4}; numbers two = {22,5}; numbers three = {21,14}; numbers four = {3,45};
     numbers five = {3,45};
    all[0] = one; all[1] = two; all[2] = three; all[3] = four; all[4] = five;
    

    Wenn ich mir jetzt aber die Adressen von allen Elementen von all ausgeben lasse, sieht das in meinem Beispiel so aus:
    0x7fff4fe11950
    0x7fff4fe11958
    0x7fff4fe11960
    0x7fff4fe11968
    0x7fff4fe11970

    Was ich überhaupt nicht verstehe. Da die größe ja 8 Bytes beträgt, müsste dann nicht die Adresse auch immer um 8 Bytes verschoben werden??



  • tinchi schrieb:

    0x7fff4fe11950
    0x7fff4fe11958
    0x7fff4fe11960
    0x7fff4fe11968
    0x7fff4fe11970

    Was ich überhaupt nicht verstehe. Da die größe ja 8 Bytes beträgt, müsste dann nicht die Adresse auch immer um 8 Bytes verschoben werden??

    Sind sie doch.

    Bedenke, dass die Angabe im Hexadezimalformat ist. Da hast du 16 Ziffern.
    Und der Abstand von 8 bis 10 ist 8. Da kommen noch 9 A B C D E F dazwischen.


Anmelden zum Antworten