Strings verbinden geht nicht.
-
Hallo ich habe mir ein kleines Programm geschrieben das mir als erstes
meine Kommazahl aufteilt in Vor und Nschkommastelle.Anschliessend
wandele ich diese beiden Int Zahlen in ASCII um.Nun möchte ich die
einzelnen Strings miteinander verbinden.Dies funktioniert bis zu meinem
letzten strncat.Da überschreibt mein zweiter String meinen ersten statt
sie zu verbinden.Kann mir irgend jemand sagen wo mein Fehler liegt?void GetFunktion2() { //1.0 float Zahl =256.8; char string[8]; char buf[2]; Uint16 NachkommaStelle =0; Uint16 Vorkommastelle =0; Float_To_INT(Zahl,&NachkommaStelle,&Vorkommastelle); INT_To_ASCII(Vorkommastelle,3,string); INT_To_ASCII(NachkommaStelle,1,buf); strncat(string,".",1); strncat(buf,",",1); strncat(string,buf,2); asm (" ESTOP0"); }
-
Hab meinen Fehler gefunden.Mein Array buf ist zu klein.Das abschliessende \0 kann nicht gespeichert werden.
-
Du mußt auf den Platz aufpassen!
Buf ist nur zwei Bytes klein, das reicht für eine Nachkommastelle und die "terminating zero". Ein Komma ankleben geht da eh schon nicht.
Mach mal das richtig und erzähl, was passiert.Edit: Ui, ich war zu langsam