Hi,
ich habe hier eine simple, dumme C-Frage, die sich mit etwas Nachdenken
eigentlich lösen lassen sollte, aber ich komme gerade nicht drauf :(
Ich habe ein Array von Structs:
struct test{
char* name; // Bezeichnung des Tests
int id; // ID des Tests
int res; // Testergebnis
};
struct test tests[NO_TESTS];
Jetzt soll das Array an ein Unterprogramm übergeben werden.
printTestScreen(tests);
Wobei die Signatur wie folgt aussieht:
void printTestScreen(struct tests test[]);
D.h. doch ich übergebe einen Zeiger auf das erste Feld eines Arrays von
Structs. Mit test[i].id sollte ich dann in der Funktion doch auf die
Structs zugreifen können, aber irgendwie will das gar nicht
kompilieren.
Was ist daran falsch?
Grüße
Jakob
> Was ist daran falsch?
Du zeigst weder den exakten Code noch die exakte Fehlermeldung.
Im Prinzip hast du recht: Genau so wirds gemacht.
struct test {
....
void printTestScreen(struct tests test[]);
Ich werte das mal als Schreibfehler beim posten im Forum:
Deine Struktur heist 'test', nicht 'tests'.
Das ist C++ und kein C. void printTestScreen(struct tests *test); /* C */
>Ich werte das mal als Schreibfehler beim posten im Forum: >Deine Struktur heist 'test', nicht 'tests'. Danke, das war der Fehler! Viele Grüße
Hallo,
ein kleiner Tip am Rande : Mit typedef sieht das schöner aus (meiner
Meinung nach).
typedef struct {
char *pcBla;
int iBlubb;
} test;
und dann :
#define ANZAHL 12
test variable[ANZAHL];
und weiterhin
void vPrintToScreen(test* pxVar);
Nur so meiner Meinung nach. Meinungen sind verschieden (was auch meine
Notation angeht, die hier nicht zur Diskussion steht ;-)).
MfG, Daniel.
> Das ist C++ und kein C. Wie kommst du auf das schmale Brett? > void printTestScreen(struct tests *test); /* C */ Das geht auch und ist zu ca. 100% äquivalent, sowohl in C als auch in C++.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.