C++ Zeiger in Int umwandeln

Gast #1084476
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
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
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?
Gast
Schon mal überlegt das die Warnung nicht umsonst ist?

Ich glaube bei Windows mit 64bit ist int 32bit und ein Zeiger ist 64bit 
- das geht dann eh nicht mehr.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.