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;
    
    }
    

Anmelden zum Antworten