Pointer auf ein Strucarray
-
Hallo, ich komm hier nicht so richtig weiter. Ich möchte via Pointer auf ein Structarray zugreifen. Folgendes habe ich probiert.
typedef struct { U8 id; CString name; } struct_t; struct_t meinArray[3]; meinArray[0].id = 0; meinArray[1].id = 1; meinArray[2].id = 2; meinArray[0].name = "Eins"; meinArray[1].name = "Zwei"; meinArray[2].name = "Drei"; MessageBox(meinArray[1].name);
So weit so gut. Nun möchte ich wie gesagt per Pointer drauf zugreifen:
struct_t *meinArrayPointer[3]; // wie müsste die folgende Zeile richtig aussehen? So funktioniert es nicht meinArrayPointer = &meinArray; MessageBox(meinArrayPointer[1]->name);
Auf folgende Art und Weise kann ich z.B. auf den zweiten Eintrag zugreifen. Aber gehts nicht auch irgendwie mit meinArrayPointer[1]->name?
struct_t *meinArrayPointer; meinArrayPointer = meinArray; meinArrayPointer+=1; MessageBox(meinArrayPointer->name);
lg Lisa
-
Du mußt den Zeiger nur einmal dereferenzieren - und das passiert implizit schon bei der Dereferenzierung. Das heißt da reicht:
struct_t *meinArrayPointer; meinArrayPointer = meinArray; MessageBox(meinArrayPointer[1].name);
-
struct_t *meinArrayPointer = meinArray; MessageBox(meinArrayPointer[3].name);
Und:
typedef struct { U8 id; CString name; } struct_t;
riecht übel nach C.
-
Vielen Dank! Das war wohl der berühmte Wald mit den Bäumen...