Frage zu pointer - Speicherbereichausgabe



  • Hi all,

    ich bin gerade dabei das c++ Stroustrup Buch durchzuarbeiten und bin auf etwas verwirrendes gestoßen.

    Und zwar habe ich testweise einmal ein paar zeiger ausgeben lassen und bekommen bei Pointer auf Char eine kryptische Ausgaben des Speicherbereichs

    Zum Beispiel hier der code für Zeile 1:

    char myChar = 'c';
    char* pc = &myChar;
    cout << myChar << " @ " << pc << endl ;
    

    Außerdem werden die anderen Zeiger einfach nur bestehend aus 8 Zeichen ausgegeben und nicht typischerweise in Hexadezimalformat 0x12345678

    c @ c♥²"
    myStrings[5] @ 0022FD10
    Referenz letztes Element 10
    pointer to pointer @ 0022FD04 @ c♥²"
    5 @ 0022FD08
    3 @ 0022FD0C

    Drücken Sie eine beliebige Taste . . .

    Ich persönlich denke es liegt irgendwie an Windows und seine Speicherorganisation... aber so sicher bin ich mir da nicht.

    Wäre super wenn jemand die Zeit hat, mir das recht " unwichtige Problem " mit ein paar Sätzen zu erklären.

    Danke

    ciao



  • char-Pointer werden ausgegeben, indem der dort liegende Inhalt als nullterminierter String angesehen wird und zeichenweise ausgegeben wird. Wenn dich die Adresse, also der Wert des Pointers an sich, interessiert, musst du ihn nach void* umwandeln:

    cout << static_cast<void*>(pc);
    

Anmelden zum Antworten