Forum: Compiler & IDEs Pointer auf struct wie Array behandeln


von Sven (Gast)


Lesenswert?

Hi,
ich gebe zu, der Titel ist vielleicht ein wenig unglücklich gewählt.
Ich habe folgendes Konstrukt:
1
struct point {
2
   int x;
3
   int y;
4
};
5
6
struct point* pListe = getFirstElement();

Irgendwo im Speicher liegen nun dutzende Elemente vom Typ point 
hintereinander. getFirstElement liefert die Adresse des ersten Elements 
zurück. Nun würde ich gerne gezielt auf z.B. das fünfte Element 
zugreifen. Das ganze in der Form:
1
pListe[4]->x = 10;
Das funktioniert natürlich nicht. Dachte es würde gehen wenn ich zuerst 
die Liste derefernziere und dann neu referenziere in der Form:
1
(pListe*)[4]->x = 10;
Geht natürlich auch nicht :) Wie müsste es richtig aussehen?

Grüße

Sven

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Sven schrieb:
> pListe[4]->x = 10;
> Das funktioniert natürlich nicht.

Die eckigen Klammern dereferenzieren doch schon, also genügt

 pListe[4].x = 10;

von Sven (Gast)


Lesenswert?

Autsch. Manchmal isses doch einfach als man denkt.
Danke :)

Sven

von netseal (Gast)


Lesenswert?

aber man könnte wohl auch
(pListe+4)->x :)

schreiben

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
Noch kein Account? Hier anmelden.