Pointer auf Strukturen ausgeben
-
Ohh super, Dankeschön!
Das sehe ich mir gleich mal an.
-
wenn du nur die adresse haben willst, kannst du sie auch einfach dezimal mit %d bzw. besser hexadezimal mit %x ausgeben, also z.b.
printf("%x",zeiger_auf_struktur);
oder, wie oben erwähnt, mit %p. an der ausgabe ändert sich da nichts.
-
Verwende %p, da sizeof int nicht sizeof void* sein muss, was vor allem beim programmieren für x64 der Fall sein kann.
-
Schwachfug. Dummes Zeug. Du empfiehlst Unsinn.
-
HansKlaus schrieb:
oder, wie oben erwähnt, mit %p. an der ausgabe ändert sich da nichts.
Schwachfug. Dummes Zeug. Du empfiehlst Unsinn.
-
Wutz schrieb:
Schwachfug. Dummes Zeug. Du empfiehlst Unsinn.
In der Tat gibt es einen Unterschied zwischen %x und %p, falls du dich auf mich bezogen hast.
-
HansKlaus schrieb:
an der ausgabe ändert sich da nichts.
Mal abgesehen davon, dass der Tip Scheiße ist, ist die Ausgabe bei %p implementierungsabhängig.
Kann also auch dezimal oder oktal oder binär oder ... sein
-
Ja und außerdem UB.
-
%p passt schon.
stellt sich die frage, was es für einen sinn macht einen pointerwert auszugeben. bei unorthodoxen speicherarchitekturen, kann der schon ziemlich schräg aussehen.
-
c-noob 2016 schrieb:
stellt sich die frage, was es für einen sinn macht einen pointerwert auszugeben.
Z.B. um den User mit einem BSOD zu ärgern.
c-noob 2016 schrieb:
bei unorthodoxen speicherarchitekturen, kann der schon ziemlich schräg aussehen.
So wie Segment:Offset im Real-Mode (beim 80x86)