Zeiger auf Zeiger auf Struct Fehler --> left of '->dword0' must point to struct/union



  • Hallo,

    kann mir bitte jemand sagen wo der Fehler ist und wie ich hier richtig "zeige"?

    Ich habe an der Adresse 0x500000 64 Zeiger hintereinander liegen (alle 64Bit lang).

    Diese Zeigen jeweils auf eine Struktur mit jeweils 8 DWORDS (32 Byte lang).

    Wie erstelle ich einen Zeiger und nutze ihn um auf die Strukturen zugreifen zu können?

    Folgendes habe ich versucht:

    volatile struct _slotcontext {
    		UINT32 dword0;
    		UINT32 dword1;
    		UINT32 dword2;
    		UINT32 dword3;
    		UINT32 dword4;
    		UINT32 dword5;
    		UINT32 dword6;
    		UINT32 dword7;
    };
    
    void Test() {
    struct _slotcontext **Slot;
    
            Slot = (struct _slotcontext**)0x500000;
    	printf("Slot 0: %x", Slot->dword0);
    }
    

    Fehlermeldung: left of '->dword0' must point to struct/union

    Nicky

    PS: Geht die Formatierung für den Code nicht? 😕



  • Slot ist kein Zeiger auf ein struct _slotcontext ;).



  • Slot[0]->dword0
    

    Das volatile dort ist sinnfrei.



  • Vielen Dank... 👍

    Ein Controller legt dort auch seine Daten ab, deshalb habe ich volatile eingesetzt.

    Gruß Nicky



  • supernicky schrieb:

    Ein Controller legt dort auch seine Daten ab, deshalb habe ich volatile eingesetzt.

    Wutz schrieb:

    Das volatile dort ist sinnfrei.


Anmelden zum Antworten