PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Definitionen vereinbaren



pfefferkeks
19-01-2005, 09:00
Hi,

ich habe mal eine Frage, ich habe hier ein paar Aufgaben wo ich echt nicht genau weiss was die machen:
1) int *f[10](); ich wuerde meinen das ich mir da eine Array von Fkt. Pointern erzeuge der groesse 10. Stimmt das?

2) void g[10]()(); keine ahnung ;).

3) double (*p)[5]; Array von pointern der groesse 5?

Danke fuer eure hilfe Pfefferkeks

wraith
19-01-2005, 09:18
1 und 2 sind nicht korrekt, weil es sich jeweils um Arrays von Funktionen (nicht Funktionszeigern) handelt, und das ist in C nicht möglich (genauso wenig kannst du eine Funktion haben, die eine Funktion als Parameter hat).

3 ist korrekt und einfach:
p ist ein Zeiger auf ein Array von 5 double.

Ein Array von 5 Zeigern auf double wäre
double *p[5];

Es gibt viele Seiten, wo erklärt wird, wie man diese Deklarationen liest, vielleicht reicht dir aber auch schon man cdecl (http://www.rt.com/man/cdecl.1.html)