Danke für deine Antwort. Vierstellig weil die Checksumme immer aus einem Stern und zwei Hex-Werten besteht. Abschließend die \0, also vier, oder?
Das übergeben an die Funkition scheint ja kein Problem zu sein, denn wenn ich die CS am ende per Print ausgebe, dann stimmt sie. Nur das, was an den outbuf angehängt wird, wurde überschrieben. Wenn ich CSout als globale Variable deklariere? Ist natürlich unelegant. Den malloc-Teil verstehe ich so leider nicht, damit hab ich noch nicht gearbeitet.
edit: Als globale Variable läuft es. Ein char-Array aus einer Funtion zu übergeben ist wohl nicht ohne weiteres machbar...