Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

Zeiger als Returnwert und Ergebnisparameter

&pagelevel(3)&pagelevel

Returnwert Zeiger

<typ> *funkt(...)

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

Returnwert void *

void * funkt(...)

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));

Ergebnisparameter Zeiger

<typ1> funkt(<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 vergißt, 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);