struct, pointer
-
hi, bin etwas verwirrt mit den pointern hier:/
typedef struct Foo { int x; ... }Foo; typedef struct A { struct Foo **id; ... }A; <--- was bringt das typedef bei einer struct, sonst muesst ich schreiben void test(struct A **a, ...) ? typedef struct B { Foo *foo; ... }B; void test(A **a, ...) { B *b = (B*) a; <--- warum gibt das keinen compiler error? ... }
-
1. Frage: Richtig! So kannst du anstatt struct A meinA; einfacher schreiben: A meinA;
B *b = (B*) a; <--- warum gibt das keinen compiler error?
Weil du in C(C++) programmierst, wo du jeden Zeiger lustig
hin und her biegen kannst (In Java fällst du damit auf den Bauch)
-
aber ich hab hier doch:
A **a
pointer auf pointer
-
struct schrieb:
aber ich hab hier doch:
A **a
pointer auf pointer
Egal. Mit dem Cast (B*) sagst du dem Compiler, dass du es besser weißt als er. Du verbietest im quasi die Fehlermeldung.