Seite 1 von 1

[gelöst] C - struct und zeiger

Verfasst: Mi Feb 10, 2010 8:23 pm
von stampuhh
Hey,

ich habe gerade ein kleines Verständnisproblem.

Und zwar geht es um so etwas:

Code: Alles auswählen

struct A
{
    int  wert;
};

struct B
{
    struct A  *tmp;
}st1;
Warum muss ich um auf "wert" zuzugreifen "st1->tmp->wert" schreiben und kann nicht "st1->tmp.wert" schreiben?
Ist das ein Zeiger auf einen int-Zeiger?

gruß stampuhh

Re: C - struct und zeiger

Verfasst: Mi Feb 10, 2010 8:32 pm
von Dirty Oerti
Nein, da hast du was falsch verstanden :)

Code: Alles auswählen

struct A
{
    int wert;
};



//...
struct A str_a;
str_a.wert = 5;

struct A *str_ap = (struct A*)malloc(sizeof(struct A));
str_ap->wert = 5;

Code: Alles auswählen

struct B
{
    int *pointer;
};



//...
struct B str_b;
str_b.pointer = (int *)malloc(sizeof(int));
*(str_b.pointer) = 5;

struct B *str_bp = (struct B*)malloc(sizeof(struct B));
str_bp->pointer = (int*)malloc(sizeof(int));
*(str_bp->pointer) = 5;

Re: C - struct und zeiger

Verfasst: Mi Feb 10, 2010 8:46 pm
von stampuhh
Danke für die schnelle Antwort ;)

Ich glaube so langsam hab ich das ganze raus :roll:

im meinem Fall ist das so dann schon richtig...

Code: Alles auswählen

st1->tmp->wert = 5;
gruß digga

Re: C - struct und zeiger

Verfasst: Mi Feb 10, 2010 9:26 pm
von nufan
stampuhh hat geschrieben:im meinem Fall ist das so dann schon richtig...

Code: Alles auswählen

st1->tmp->wert = 5;
Wenn st1 ein Zeiger auf ein struct B ist stimmt es.
ist nur eine Abkürzung für

Code: Alles auswählen

(*x).y
Du könntest also auch

Code: Alles auswählen

(*st1).(*tmp).wert
schreiben.

Ansonsten ist den Beispielen von Dirty Oerti nichts hinzuzufügen.

Re: C - struct und zeiger

Verfasst: Mi Feb 10, 2010 10:39 pm
von stampuhh
Danke für die Abkürzungen...das hilft beim Verständnis!
Wenn st1 ein Zeiger auf ein struct B ist stimmt es.
ja natürlich..hatte ich vergessen zu erwähnen.

edit: ich würde den Thread gerne auf gelöst oder sowas stellen..aber kann meinen ersten Post nicht bearbeiten :D

gruß stampuhh

Re: C - struct und zeiger

Verfasst: Mi Feb 10, 2010 10:47 pm
von Dirty Oerti
stampuhh hat geschrieben: edit: ich würde den Thread gerne auf gelöst oder sowas stellen..aber kann meinen ersten Post nicht bearbeiten :D
Erledigt ;)