Ein char-Array aus einer Funktion zu übergeben ist wohl nicht ohne weiteres machbar...
Was ist schon "ohne weiteres" in c/c++ ![]()
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
}