adressen eines char* sichern



  • hallo allerseits,

    wie kann ich die offsets der speicheradressen der einzelnen chars eines char* abspechern?

    ich habe sowas versucht, schlägt jedoch fehl:

    char* &pBuffer;
    static int* m_pPagePosition;
    m_pPagePosition = reinterpret_cast<int*>(&pBuffer);   // grab address
    


  • Also wenn ich die Frage richtig verstehe:

    Warum willstn das machen?! Das erste Zeichen ist 0 Byte vom Anfang weg, das zweite 1 Byte, das zehnte 9 Byte usw... Achja:

    char *text = "Hallo, Welt";
    char *ptr = text + 4; // Zeichen 'o'
    int offset = ptr - text;
    

    Ansonsten: Bitte neuformulieren.

    PS: Dass das da oben fehlschlägt seh ich zwar auf den ersten Blick, trotzdem ist "schlägt fehl" keine ausreichende Fehlerbeschreibung. Das da oben jedenfalls dürfte nichtmal compilieren 😉



  • Was genau willst du erreichen? char* enthalten doch schon die Adresse des dahinterliegenden Zeichenarrays.

    char* text = "Ich bin ein String.";
    printf("%p\n",text);  //Adresse des ersten Zeichens 'I'
    printf("%p\n",text+4);//Adresse des fünften Zeichens 'b'
    


  • THX

    Ich wollte die position innerhalb des Strings ermitteln:

    int offset = ptr - text;
    

    bin ich komplett am verblöden, sollte mich schlaffen legen???


Anmelden zum Antworten