Byte auslesen von einer Speicherstelle



  • Hallo

    funktion bla:

    //übergabe via:
    pass_it(bla);
    
    //in der funktion pass_it:
    void pass_it(void *p)
    {
        printf("%x", p);
    }
    

    Mein Problem: In p ist nun eine Adresse gespeichert und an dieser Stelle möchte ich gerne ein Byte auslesen. Wie kann ich sowas bewerkstelligen? Ich versuchte via printf("%x", *p) und &p sowie **p aber es gab Fehler und es klappte nicht. Wie kann ich mein Problem lösen? Danke

    Liebe Grüsse BlackOut (was ich grad habe :()



  • char byte = *(char*)p;
    

    🙂



  • Morgen,

    du solltest dir aber darüber im Klaren sein, dass die heutigen Computer fast alle über ein virtual Memory System verfügen.
    D.h. jede Anwendung hat ihren eigenen 32Bit Adressraum, du kannst also nur deinen eigenen Speicher mit dieser Methode einschränken. Und dann gibt es noch eine weitere Einschränkung: nur einem Teil deines Adressraumes ist tatsächlich Speicher zugeordnet. Greifst du auf eine Adresse außerhalb zu, so könnte das in einem Absturz deines Programms enden (nicht weil es so schlimm wäre, sondern weil das BS dein Programm "beenden" würde).



  • Danke vielmals. Ja da bin ich mir bewusst, ich wusste nur gerade nicht wie ich sowas mit ptrn lösen kann. merci beaucoup!!!


Anmelden zum Antworten