Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Returnwerte und Ergebnisparameter

&pagelevel(4)&pagelevel

Returnwert Zeiger

<typ> *funct(...)

Etliche Funktionen, die einen Zeiger zurückliefern, schreiben ihr Ergebnis in einen C-internen Datenbereich, der bei jedem Aufruf einer solchen Funktion überschrieben wird. Weil dies eine häufige Fehlerquelle ist, wird bei Funktionen vom Datentyp Zeiger auf diesen Umstand hingewiesen.

Returnwert void *

void * funct(...)

Wenn der Funktionswert einer void *-Funktion einer Zeigervariablen zugewiesen wird, sollte der Typ mit dem cast-Operator explizit umgewandelt werden. Beim Aufruf aus C++-Quellen ist die explizite Typumwandlung obligatorisch.

Beispiel

long *long_ptr;
.
.
long_ptr (long *)calloc(20, sizeof(long));

Returnwert int

int funct();

Funktionen zur Zeichenbearbeitung haben einen Returnwert vom Typ int, da sie EOF (=-1) zurückliefern können. Wenn die Funktion einen Returnwert vom Typ char zurückliefert, läuft ein Programm auf einen Fehler.

Ergebnisparameter Zeiger

<typ1> funct(<typ2> *variable)

Ergebnisparameter sind Variablen, deren Inhalt durch die Funktion verändert wird. D.h., in solche Variablen speichert die Funktion ein Ergebnis ab. Ergebnisparameter sind ohne den Zusatz const definiert.

Als Argument ist stets die Adresse, d.h. ein Zeiger, zu übergeben. Außerdem müssen Sie vor Aufruf der Funktion den Speicherplatz für das Ergebnis explizit bereitstellen.
Weil man dies häufig vergisst, wird in den jeweiligen Funktionsbeschreibungen darauf hingewiesen.

Beispiele

struct timeb tp;    /* Struktur */
ftime(&tp);
char erg;           /* char-Variable */
scanf("%c", &erg);
char array[10];     /* Zeichenketten-Variable */
scanf("%s", array);