Hallo, ich möchte einen int-Wert in einen String umwandeln, was ist hier falsch? int wert; char string[]={}; wert = 345; itoa(wert,string,10); Bitte um schnelle Hilfe, Danke im Voraus!
Hi! Du musst Speicher für den Buffer (in Deinem Fall string) bereitstellen, und zwar soviel, dass der konvertierte Wert darin Platz hat. Bei itoa muss der Benutzer dafür sorgen, dass der Buffer ausreichend groß ist. Also etwa: int wert = 345; char string[4]; itoa(wert,string,10); Das sollte dann klappen (ohne es jetzt ausprobiert zu haben). Bye Daniel Jelkmann
Hi Peter, erklär mal bitte warum das 7 Bytes sein sollen... Soweit ich weiss muss der Buffer nur ausreichend groß sein, dass der konvertierte String da hineinpasst. Das wären für mich die drei Zeichen '3', '4', '5' und das Nullzeichen am Ende '\0'... MfG Daniel Jelkmann
@Daniel Er wird ja wohl nicht nur "345" ausgeben wollen, sonst hätte ers ja direkt in den String schreiben können. Und die größte mögliche Zahl (int) ist: "-32768" + 0-Byte = 7 Bytes. Peter
@Peter: Das macht natürlich Sinn ;) Soweit hatte ich garnicht gedacht, ich hab nur diesen konkreten Fall gesehen... boing Danke. Aber streng genommen kann ein int ja auch 32 Bit haben, es ist ja nichts über die Maschine gesagt für die das kompiliert wird. Ja ich weiss, ziemlich unwahrscheinlich hier in einem µC-Forum... MfG Daniel Jelkmann
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.