Array von einem struct anlegen



  • hi

    ich hab da ein problem ...

    ich habe ein struct:

    struct t_Objects{
    		int objid;
    		CString objname;
    		CString objvalue;
    		RECT pos;	
    	}objects;
    

    und davon möchte ich nun ein array anlegen
    und ich dachte das geht so:

    t_Objects obj[] = new t_Objects[anz_obj];
    

    wenn ich das aber nun versuche bekomm ich die fehlermeldung:

    error C2538: new : Angabe der Initialisierung für Arrays nicht moeglich
    

    wie kann ich nun also von dem struct ein array anlegen ?

    mfg LT



  • t_Objects * obj = new t_Objects[anz_obj];
    


  • *edit* geht doch



  • Vielleicht noch ein bissel mehr Text:

    void foo() {
      int x[4];            // legt ein "automatisches" Array an
                           // x ist ein int[4]
                           // Die 4 muss ein eine Compilezeit-Konstante sein
    
      int y[] = {1,2,3,4}; // legt ein "automatisches" Array an
                           // y ist auch ein int[4]
    
      int* z = new int[4]; // legt ein "dynamisches" Array an. new
                           // liefert einen Zeiger auf das erste Element
                           // Statt der 4 darf man auch eine Variable
                           // einsetzten, deren Wert erst zur Laufzeit
                           // bekannt ist.
    
      delete[] z;          // Löschen mit dem richtigen Operator
                           // nicht vergessen!
    
      std::vector<int> v (4); // Dynamisches "Array" mit 4 Elementen anlegen,
                              // welches sich selbst verwaltet
      v[0] = 23;
      v[1] = 42;
    }
    

Log in to reply