aus int mach char



  • Ich habe ein Problem was ich alleine bisher nicht lösen konnte.
    Hier der Quellcode des Konsolen-Programmes, er lässt sich fehlerfrei mit dem VC++ Compiler kompilieren jedoch ist die dritte Ausgabe eine merkwürdige Zeichenfolge, der Fehler muss bei der Rückgabe der buffer2 Variable erfolgen. Am liebsten wäre es mir, wenn mir gleich noch jemand sagen kann ob man nicht schon eine char* Variable verwenden kann um die Ergebnisse der Funktion itoa(...) aufzufangen. Ich habe es bisher noch nicht hinbekommen.

    #include <iostream.h>
    #include <stdlib.h>
    
    char* con(int Temp)
    {
    	char buffer[20];
    	char* buffer2 = NULL;
    
    	itoa(Temp, buffer, 10);
    
    	buffer2 = buffer;
    
    	return buffer2;
    }
    
    int main()
    {
    	int Temp = -987;
    
    	char buffer[20];
    	char* buffer2 = NULL;
    
    	itoa(Temp, buffer, 10);
    
    	buffer2 = buffer;
    
    	cout << buffer2   << endl;
    	cout << buffer    << endl;
    	cout << con(Temp) << endl;
    
    	return 0;
    }
    

    Schreibt bitte wenn ihr den Fehler entdeckt habt.



  • Nabend,

    du gibst die lokal deklarierte Variable 'buffer2' zurueck. Die und die Speicher-
    zelle, auf sie zeigt, wird aber ungueltig, nachdem die Funktion beendet wird.

    Zu 2: ja, du kannst der Funktion eine Variable vom Typ char* uebergeben,
    allerdings musst du entsprechend Speicher fuer diese Variable reserviert haben,
    damit das Ergebnis darin gespeichert werden kann.

    mfg
    v R


Anmelden zum Antworten