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
im meinem Fall ist das so dann schon richtig...
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...
Wenn st1 ein Zeiger auf ein struct B ist stimmt es.
ist nur eine Abkürzung für
Du könntest also auch
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
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
Erledigt
