Parameter und Rückgabewerte mit Arrays in C/C++

Hallo,
für mich ist das Thema C/C++ ganz neu. Ich habe folgendes Problem. Ich habe in meiner main.cpp
ein array erzeugt und will dies als Parameter an eine funktion übergeben. Kann ich das so machen??

rückgabewert funktionsname (typ arrayname [])
oder muss man dafür einen pointer benutzen?

wäre für ein Beispiel sehr dankbar falls beides möglich ist wären zwei Beispiele sehr gut.

Kann man ein array auch als rückgabewert benutzen bzw. welche möglichkeiten gibt es da (Beispiel) ???

Wäre super wenn mir als Neuling ein alter Hase helfen könnte.

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