Gast
#556847
Hallo,
ich habe eine Funktion AtoF, die einen String in ein Float umwandelt.
Wenn ich die Funktion jetzt das Resultat zurück geben lasse, sie also
deklariere als
float AtoF (char* s) {
float z;
(...Berechnung des Resultats in z...)
return z;
}
und in main aufrufe mit
float f=0;
f= AtoF ("123,123");
steht in f ein völlig falscher Wert (die Funktion arbeitet einwandfrei,
kann also nur an der Übergabe liegen).
Wenn ich die Funktion jedoch so deklariere, dass eine Adresse für das
Ergebnis übergeben wird, funktioniert es:
void AtoF (char* s, float* f) {
(...Berechnung des Resultats in *f...)
}
Aufruf in main:
AtoF ("123,123", &f); //richtiger Wert in f
Kann mir jemand sagen, wo der Fehler liegen könnte? Kann es ein Problem
mit dem Stack geben?