Hallo avr-gcc Fachleute, ich steh da mit gcc etwas auf Kriegsfuß: Ich empfange einen Datenrahmen aus 5 Bytes, die als uint8_t db0..db4 global definiert sind. Ich möchte jetzt eine Funktion schreiben: char *makestring(); Die Funktion soll mehrere solche Datenrahmen (a je 5 Bytes) empfangen (macht eine andere Funktion, die gut funktioniert!) und dann zu einem String zusammenbasteln. Die Funktion soll dann die Adresse des Strings übergeben. Es geht also darum, jeweils 5 Bytes an einen String dranzuhängen und mit 0 zu terminieren. Wie geht das? Hat jemand einen Tip für mich Anfänger? MfG harry_o
Versuchs mal mit strcat. Das funktioniert allerdings nur, wenn alle Strings auch wirklich mit 0 terminiert sind!
harry_o wrote: > Hallo avr-gcc Fachleute, > > ich steh da mit gcc etwas auf Kriegsfuß: > > Ich empfange einen Datenrahmen aus 5 Bytes, die als uint8_t db0..db4 > global definiert sind. > Ich möchte jetzt eine Funktion schreiben: > char *makestring(); > Die Funktion soll mehrere solche Datenrahmen (a je 5 Bytes) empfangen > (macht eine andere Funktion, die gut funktioniert!) und dann zu einem > String zusammenbasteln. Die Funktion soll dann die Adresse des Strings > übergeben. Keine gute Idee. Übergib besser der Funktion die Adresse eines Buffers, der gross genug ist um diese 6 Bytes aufzunehmen void makestring( char* Buffer ) { Buffer[0] = db0; Buffer[1] = db1; Buffer[2] = db2; Buffer[3] = db3; Buffer[4] = db4; Buffer[5] = '\0'; }
Hallo Karl Heinz, danke, ich werd's so probieren. MfG harry_o
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.