HEX conversion mit sprintf

Hallo Jürgen,

das ist kein Problem von sprintf, sondern ein Fehler in deinem Programm. Du gibt die Adresse einer lokalen Variablen auf dem Stack zurück, die längst überschrieben worden sein könnte.

Es gibt zwei einfache Lösungsmöglichkeiten:

a) den String für den Hexwert als Parameter an die Funktion übergeben
b) den String nicht statisch (also char CSout[4]), sondern dynamisch per malloc() zu reservieren - dann musst du ihn aber in der aufrufenden Funktion auch wieder freigeben.

Warum hast du eigentlich CSout in der Länge von 4 definiert? Brauchst du wirklich 3 Zeichen für die Hex-Zahl?

Ciao,

Rudi