Rückgabe eines Char-Arrays
-
Hallo liebes Forum,
habe mir schon im Internet verschiedene Posts durchgelesen, komme aber nicht auf die Lösung.
Ich möchte etwas schreiben, das ungefähr folgendermaßen aussieht:
char msg(unsigned length) { unsigned char ergebnis[length+1]; int count; for(count=0; count<length; count++) { ergebnis[count]='x'; } ergebnis[length]='\0'; return ergebnis; } int main() { char ausgabe=msg(5); printf(ausgabe); }
Das Programm soll also mit msg(5) eine Zeichenkette ergebnis schreiben, die "xxxxx" enthält, diese an ausgabe zurückgeben, welches ausgegeben wird.
Wie mache ich so etwas? Es geht vor allem um die Rückgabe des Char-Arrays. (Bin noch C-Neuling
)
-
Probier es mal mit
char *msg
-
kannste mit 'malloc' machen, so etwa:
char *msg (unsigned length) { char *p = malloc (length+1); if (p) { unsigned s; for (s=0; s<length; s++) p[s] = 'x'; p[s] = 0; } return p; } int main() { char *ausgabe=msg(5); printf(ausgabe); }
-
Danke, funktioniert perfekt!
-
nh2 schrieb:
Danke, funktioniert perfekt!
achso, wenn du das array nicht mehr brauchst: mit 'free' beseitigen.
--> http://www.cplusplus.com/reference/clibrary/cstdlib/free.html