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 @ 0022FD0CDrü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);