pointer to string
-
hi!!
wie kann ich einen pointer zu einen string umwandeln?danke
-
keiner ne idee?
ich will parktisch die adresse in so einen format rausbekommen: z.B. 0x000005
-
mit reinterpret-cast in ein int umwandeln und mit stringstream in einen String schreiben. So hätte ich es gemacht.
geloescht
-
oder die knallharte C methode ...
sprintf(buffer,"Die adresse meines Pointer ist: %8.8X ",(void *)ppointer );
Den cast kannst auch weglassen ...
nen C++ cast und stringstream ist aber fuer c++ sauberer
Ciao ...
-
geloescht schrieb:
mit reinterpret-cast in ein int umwandeln und mit stringstream in einen String schreiben. So hätte ich es gemacht.
Und die armen Abermillionen zukünftiger Win64-Benutzer wundern sich, warum die Hälfte fehlt
AFAIK gibt es einen operator<< für void*. Der Cast müsste implizit sein, wenn es sich nicht gerade um char* handelt.
-
AFAIK gibt es doch ein paar alte C-Funktionen, die Zahlen in strings als Zahl zu beliebiger Basis (bei dir das 16er System) darstellen.
In der MSDN bin ich mal zufällig auf so etwas gestoßen.Vom reinterpret_cast würde ich grundsätzlich abraten, das ist genau so ein maschinennaher Hack, der den Code unportabel macht.
-
operator void schrieb:
AFAIK gibt es einen operator<< für void*.
Jup. Den gibt es:
#include <sstream> #include <string> #include <iostream> using namespace std; int main() { int i = 32; int* p = &i; stringstream s; s << p; string pAsString("0x"); pAsString += s.str(); cout << pAsString << endl; }