Structs verschachteln



  • Hallo,

    wie kann man bei verschachtelten structs, die "innere" struct initialisieren (wenn davon noch keine Variablen deklariert sind) ?

    Bsp:

    struct zylinder_s { 
    	struct punkt_s {
    					double x, y , z;
    					}
    	double oberflaeche, volumen;
    } z1;
    
    /*Nun möchte ich drei Punkte deklarieren und initialisieren*/
    
    z1.punkt_s p1 = {1, 2, 3}; //??
    

    Wie geht das?


  • Mod

    Mit verschachtelter Initialisierung natürlich 😃 :

    struct zylinder_s {
      struct punkt_s {
        double x, y , z;
      } punkt;  // Hier muss noch ein Name hin!
      double oberflaeche, volumen;
    } z1 = {{1, 2, 3},1.0,1.0};
    


  • Also muss man alle inneren Variablen schon vorher deklarieren sonst hat man ein Problem? Oder man macht ein Struct-Array, wobei - mit Bezug aufs Beispiel - eine structvariable punkt ausreichend wäre, wenn man sie static deklariert ?



  • stimmt das so?


  • Mod

    Wenn du das nochmal auf Deutsch formulierst, könnte man dir die Richtigkeit oder Falschheit deiner Aussage bestätigen.

    So verstehe ich absolut nicht was du meinst.



  • Hallo Sepp,

    ich meinte, wenn man nicht weiß wieviele Punk_s Variablen ich brauchen werden, dann könnte ich mir doch auch ein Array benutzen.

    struct Rechteck_s{
         struct Punkt_s{
              int x, y, z;
             }static punkt[PMAX];
    
         double volumen, oberflaeche;
    }rechteck;
    
    rechteck = {{1,2,3},1.0,2.0};
    //oder
    rechteck.punkt[i] = {1, 2, 3};
    

    geht das?


Anmelden zum Antworten