C++ Zeiger in Int umwandeln

Gast #1084476
Lesenswert?
• ▲
▼
Hallo!


Gibt es eigentlich ein Möglichkeit, einen Zeiger in einen int 
umzuwandeln, die keine Warning beim Kompilieren erzeugt?

Ich habs zur Zeit so gemacht:

long int x = (long int) Zeiger;


Normalerweise casted man natürlich nicht zwischen Pointer und Int. Das 
soll auch nur als Debugausgabe benutzt werden.
Gast #1084862
Lesenswert?
• ▲
▼
Leider produziert die angegebene Zeile eine Warnung. Und da das ganze 
ein open source Projekt ist, kommen regelmäßig Kommantare und Nachfragen 
wegen der Warnung rein.

Mit nem  reinterpret_cast<long int>(Zeiger)  wir auch eine Warnung 
produziert.


Gibts da kein Weg, das der Compiler da nicht meckert?
Gast #1084892
Lesenswert?
• ▲
▼
Gehen tut das schon, siehste ja.

Aber steig vorher lieber nochmal in die Theorie ein:
Nirgendwo steht geschrieben, dass ein Zeiger unbedingt eine Zahl sein 
muss. Es obliegt einzig und allein der Rechnerarchitektur, wie Zeiger 
umgesetzt werden und wie dann der *-Typ in C unter der Haube aussieht!

Ein Beispiel wäre z.B. einen Zeiger mit zwei Zahlen darzustellen 
(Segment:Offset).

Also Vorsicht... warum sollte man einen Zeiger überhaupt in eine Zahl 
umwandeln?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren