Probelme bei stringstream in char[] konvertierung
-
Hi
ich hab folgendes probelm. Ich muss einen stringstream in ein char[] convertieren.
wenn ich das wie in fkt1 implementiere dan funktioniert das.
wenn ich das wie in fkt2 mache bekomm ich nur müll zurück.entwicklungsumgebung MSVC 6.0
#include <windows.h> // ... weiter windows headers #include <string> #include <sstream> using namespace std; const char * fkt1() { const char * ret = 0; stringstream stream; stream << "123456" ; // mit hilfe des streams nen string zusammenbau string str = stream.str(); ret str.c_str(); return ret; } const char * fkt1() { const char * ret = 0; stringstream stream; stream << "123456" ; // mit hilfe des streams nen string zusammenbau // den zwischenschritt über string weggelassen. ret stream.str().c_str(); return ret; }
ist das irgend ein komisches Header problem? das mir z.B. die string.h von windows dazwischen pfuscht? Baut MSVC wieder irgend einen mist? Hab ich zu viel java programmiert das ich meinen logischen fehler nicht sehe?
grus Termite
-
Hallo,
Beide Funktionen geben einen Pointer auf eine lokale Variable zurück welcher nach Abarbeitung der Funktion natürlich ungültig ist.
Das der erste Versuch bei dir funktioniert ist reiner Zufall.
Du musst schon Speicher für dein char* anfordern.Ciao