Hallo Adrian Pryde,
Du kannst einen Pointer als Rückgabewert verwenden (nicht das Array selbst). Du mußt jedoch das Array außerhalb der Funktion deklariert haben (innerhalb der aufrufenden Funktion oder global). Du mußt den Pointer als Parameter der Funktion übergeben, und kannst diesen Pointer dann als Rückgabewert verwenden, was jedoch meist nicht nötig ist, allerdings oft eine kürzere Formulierung des Quelltextes ermöglicht, s. u.
Beispiel:
…
char text[80]; // das Array
char *func1(char *tx)
{
// … (mache irgendwas mit dem Array, auf das der // Pointer tx zeigt
return tx;
}
main()
{
…
func1(text);
…
// hier kannst Du das Array text[80] weiter verarbeiten, z. B. auf dem Display ausgeben
}
Im Prinzip ist es überflüssig, den Pointer eigens als Rückgabewert zu verwenden, es reicht, den Pointer als Parameter zu übergeben. Manchmal ist es sinnvoller, als Rückgabewert z. B. FALSE zurückzugeben, wenn ein Fehler aufgetreten ist, und TRUE, wenn alles ok ist.
Ein Beispiel für eine Funktion, die bereits durch Bibliotheken (#include stdio.h oder stdlib.h) zur Verfügung gestellt wird, wäre etwa
char *itoa(int val, char *buf, int radix);
char buf[16];
int i, sum;
sum = 0;
for (i = 0; i