[gelöst] C - struct und zeiger

Schnelle objektorientierte, kompilierende Programmiersprache.
Antworten
Benutzeravatar
stampuhh
Beiträge: 211
Registriert: Sa Nov 07, 2009 4:39 pm
Wohnort: Paderborn

[gelöst] C - struct und zeiger

Beitrag von stampuhh » Mi Feb 10, 2010 8:23 pm

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
NachDenkSeiten.de

Benutzeravatar
Dirty Oerti
Beiträge: 2229
Registriert: Di Jul 08, 2008 5:05 pm
Wohnort: Thurndorf / Würzburg

Re: C - struct und zeiger

Beitrag von Dirty Oerti » Mi Feb 10, 2010 8:32 pm

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;
Bei Fragen einfach an daniel[ät]proggen[Punkt]org
Ich helfe gerne! :)
----------
Wenn du ein Licht am Ende des Tunnels siehst, freu dich nicht zu früh! Es könnte ein Zug sein, der auf dich zukommt!
----
It said: "Install Win95 or better ..." So I installed Linux.

Benutzeravatar
stampuhh
Beiträge: 211
Registriert: Sa Nov 07, 2009 4:39 pm
Wohnort: Paderborn

Re: C - struct und zeiger

Beitrag von stampuhh » Mi Feb 10, 2010 8:46 pm

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
NachDenkSeiten.de

nufan
Wiki-Moderator
Beiträge: 2558
Registriert: Sa Jul 05, 2008 3:21 pm

Re: C - struct und zeiger

Beitrag von nufan » Mi Feb 10, 2010 9:26 pm

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.

Benutzeravatar
stampuhh
Beiträge: 211
Registriert: Sa Nov 07, 2009 4:39 pm
Wohnort: Paderborn

Re: C - struct und zeiger

Beitrag von stampuhh » Mi Feb 10, 2010 10:39 pm

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
NachDenkSeiten.de

Benutzeravatar
Dirty Oerti
Beiträge: 2229
Registriert: Di Jul 08, 2008 5:05 pm
Wohnort: Thurndorf / Würzburg

Re: C - struct und zeiger

Beitrag von Dirty Oerti » Mi Feb 10, 2010 10:47 pm

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 ;)
Bei Fragen einfach an daniel[ät]proggen[Punkt]org
Ich helfe gerne! :)
----------
Wenn du ein Licht am Ende des Tunnels siehst, freu dich nicht zu früh! Es könnte ein Zug sein, der auf dich zukommt!
----
It said: "Install Win95 or better ..." So I installed Linux.

Antworten