Adresslänge bei Ausgabe mittels %p durch fprintf
-
Hallo allerseits,
ich hoffe, jemand kann mir mit folgendem Problem helfen. Ich gebe mir an einer bestimmten Stelle meines Codes die Adresse eines Objekts mit folgendem Code aus:
Short* piY = from.getLumaAddr(); fprintf( stderr, "piY = %p\n", piY );
Auf einem Mac bekomme ich bei mehrmaligem Durchlauf Ausgaben ähnlich den folgenden:
piY = 0x10449e8a0
piY = 0x1034808a0Auf einem Linuxrechner gibt mir der Code manchmal folgendes aus:
piY = 0x4cb2b70
piY = 0x7f7d5aef08b0Jetzt wundere ich mich über die unterschiedliche Länge der Adressangaben auf dem Linuxrechner. Es mag vielleicht eine komische Frage sein, aber hat das so seine Richtigkeit oder müssten die Adressangaben nicht wenigstens gleich lang sein?
Viele Grüße,
mbu
-
Warum sollten sie gleich lang sein? Das ist so, als würdest du dich wundern, dass nicht alle ints gleich lang sind.
(P.S.: Und mit C++ hat das nichts zu tun)
-
Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C++ (auch C++0x und C++11) in das Forum Rund um die Programmierung verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
SeppJ schrieb:
Warum sollten sie gleich lang sein? Das ist so, als würdest du dich wundern, dass nicht alle ints gleich lang sind.
(P.S.: Und mit C++ hat das nichts zu tun)
Entschuldige, dass ich dich gestört habe. Und vielen Dank für die Antwort.
-
Auch bei %p werden führende Nullen unterdrückt.
Und die flags und width Angaben funktionieren auch bei %p:
%016p
-
DirkB schrieb:
Auch bei %p werden führende Nullen unterdrückt.
Und die flags und width Angaben funktionieren auch bei %p:
%016p
Danke, Dirk. Das war wahrscheinlich meine Verwirrung.