C Frage zu Prototypen

Zerstoerer

Lieutenant
Registriert
Okt. 2010
Beiträge
687
Hallo zusammen,

ich habe hier gerade eine Aufgabe, bei der ich für einen bestimmten Prototypen die zugehörige Methode schreiben soll. Dies ist der Prototyp:

Code:
int next(struct object*, int len, char (*)[len]);

Ich verstehe daran leider nicht, wie ich hier an den 3. Parameter komme, da ja leider kein Name definiert wurde. Ist das nun ein Fehler der Aufgabe oder kann man allgemein da irgendwie darauf zugreifen?

Wäre dankbar für ein paar Tipps.
 
In der Deklaration sind keine Namen für die Variablen notwendig (Also in der Regel im Headerfile). Erst bei der eigentlichen Erstellung der Funktion (Definierung) im cfile werden Namen für jeden Parameter benötigt.
 
Danke, das hilft mir schonmal weiter. Leider bin ich immer noch nicht in der Lage mir meine Methode damit zu erstellen. Ich würde die Methode jetzt z.B. so definieren:

Code:
int next(struct object*, int len, char matrix(*)[len]) {

}

Dabei bekomme ich allerdings den Fehler "error: expected declaration specifiers or '...' before '*' token" ausgeworfen. Sollte nun nicht alles korrekt sein?
Ich habe den Namen schon an verschiedenen Stellen positioniert, leider nie mit Erfolg.
 
Zerstoerer schrieb:
Danke, das hilft mir schonmal weiter. Leider bin ich immer noch nicht in der Lage mir meine Methode damit zu erstellen.

Deklaration:
Code:
#define SIZE 100

int next(struct object*, int len, char(*)[SIZE]);

Definition:
Code:
 int next(struct object* o, int len, char(*p)[SIZE])
{
 ...
 ...
 return 0;
}
Ich habe den Namen schon an verschiedenen Stellen positioniert, leider nie mit Erfolg.

Na ja, so wird das nicht funktionieren. Am besten mal in einer Mußestunde ein C/C++-Buch lesen.

Außerdem: eine Variable (len) als Größenbezeichner in der Funktionsdeklaration wird so nur mit ganz bestimmten C-Standards funktionieren (C99?). Eine Konstante (SIZE) geht immer. Alternativ kann man freilassen, also die leeren Klammern.
 
Ja, ganz schön blöd von mir, dass ich bei dem struct object den Bezeichner vergessen habe... Daran hat es dann auch die letzte Zeit gehangen, also danke für die Hilfe.
 
Zurück
Oben