PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Struktur-Funktionspointer


Gast
2008-03-08, 19:28:32
Hallo,

Ich hab ein Verständnisproblem mit dem unten stehenden Code,im dritten Absatz wird ein Funktionspointer angemeldet und im vierten aufgerufen nur wie geht das dass die Funktion aufgerufen werden kann ohne die Adresse zu wissen oder Dereferenzierungsoperator?


struct adres {
Variablen def;
};

void ausgabe(struct adres *struct_ptr) {
Ausgabe mit printf;
}

struct adres *eingabe(void) {
static struct adres *adressen;
Speicherreservierung und Prompt
return adressen;
}

int main(void) {
struct adres *adresse1;

adresse1=eingabe();

ausgabe(adresse1);

return EXIT_SUCCESS;
}

SGT.Hawk
2008-03-08, 20:12:47
nein, das ist kein Funktionspointer, sondern die Rückgabe einer Adresse.

noid
2008-03-08, 21:31:14
Genau,
struct adres *eingabe(void) -> (struct adres *)eingabe(void) wird so interpretiert.
struct adres (*eingabe)(void) <- Funktionszeiger.