C: Struct, Pointer und Arrays

Gast #364845
Lesenswert?
• ▲
▼
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
Gast #364851
Lesenswert?
• ▲
▼
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.
Gast #364852
Lesenswert?
• ▲
▼
> 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++.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren