HEX conversion mit sprintf

Ein char-Array aus einer Funktion zu übergeben ist wohl nicht ohne weiteres machbar...

Was ist schon "ohne weiteres" in c/c++ :wink:

Da wir beim Arduino mit seinem kleinen RAM und "unendlicher Laufzeit" mit dynamischem Speicher vorsichtig sein sollten:

Klassischerweise übergibt der Aufrufer die Adresse des Ergebnis-Puffers und erlaubte Länge an die Funktion.
Die Funktion sieht die Adresse als pointer. Oft gibt sie die tatsächlich beschriebene Länge als Ergebnis (oder -1 als Fehler) zurück.

int myFunction (char*, int); // Deklaration

void loop() 
{
 char buffer[80];
 int result = myFunction(buffer, sizeof(buffer));
 if (result > 0) 
   // buffer contains data
}