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.


Anmelden zum Antworten