Guten Morgen zusammen,
Bisher habe ich Übergabeparameter einer Funktion immer als Pointer
übergeben, was ich bisher als die Beste Variante aufgrund von
Zugriffszeit und Speicherplatz befand.
Beispiel hierzu:
struct s_Parameter {
struct Para_ALG
{
int Magnet;
}ALG;
}
EXT volatile struct s_Parameter Parameter;
Funktionsaufruf sah dann wiefolgt aus:
void Funktion(volatile struct Para_ALG *PARA)
{
PARA->Magnet = 3;
}
...sowiet so gut, das hat bisher immer gut funktioniert. Ich möchte
jetzta ber auf die nächste "Ebene" der Struktur zugreifen
void Funktion(volatile struct s_Parameter *PARA)
{
(PARA.ALG)->Magnet = 3;
PARA->ALG->Magnet = 3
...
}
Wiesieht hier der Zugriff aus? Der Umgang mit Pointern etc.ist mir
durchaus bekannt, ich kanns mir trotzdem nicht logisch herleiten, bzw.
alle logischen Herleitungen die ich bisher ausprobiert habe (siehe die
Bepsiele oben) führen zu Fehlern
Für jede erst gemeinte Antwort bin ich überaus dankbar
In deinem Beispiel müsste der Zugriff lauten:
void Funktion(volatile struct s_Parameter *PARA)
{
PARA->ALG.Magnet = 3;
...
}
Über PARA-> dereferenzierst du über den Pointer auf die innere Struktur
ALG. Anschließend kannst du ganz einfach über den '.' Operator weiter
arbeiten.
PERFEKT!!!!!! Funkioniert...klar,logisch Vielen Dank, you safed my day :-)
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.