verschachtelte strukturen/Pointer ->.Hilfe!

Gast #4926565
Lesenswert?
• ▲
▼
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
#4926571
Lesenswert?
• ▲
▼
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.

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