Forum: Mikrocontroller und Digitale Elektronik verschachtelte strukturen/Pointer ->.Hilfe!


von soundmachine123 (Gast)


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

von Sebastian K. (sek)


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.

von soundmachine123 (Gast)


Lesenswert?

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