strukturen gegenseitig einbinden



  • struct A
    {
     	struct B b;
    	// ...
    	// weitere member, anders als in struct B
    };
    
    struct B
    {
    	struct A a;
    	// ...
    	// weitere member, anders als in struct A
    };
    

    hi, ich bekomme die fehlermeldung:

    'b' verwendet undefiniertes struct 'B'

    wie kann man sowas lösen?



  • Mit direkt eingebundenen Strukturen gar nicht - durch die rekursive Einbindung würdest du sonst unendlich große Objekte erzeugen. Eine Lösung besteht darin, zumindest in einer Richtung Zeiger zu verwenden:

    struct B; //Forward-Deklaration - ausreichend um Zeiger darauf anzulegen
    
    struct A
    {
         struct B* b;
        // ...
        // weitere member, anders als in struct B
    };
    
    struct B
    {
        struct A a;
        // ...
        // weitere member, anders als in struct A
    };
    


  • danke!
    🙂


Anmelden zum Antworten