structurgröße dynamisch?



  • Hi, wie kann ich die Structur größe dynmaisch verändern??

    also

    struct Vertex
    {
        float x;
        float y;
        float z;
    }m_Vertex[3];
    

    so is die struct ja nur 3 Felder groß. Ich möchte aber, das das dynamisch ist, halt dynamsiche Speicherverwaltung, nur wie geht des bei structs??



  • realloc



  • Version 1:

    struct Vertex
    {
        float x;
        float y;
        float z;
    };
    
    int main(..)
    {
      Vertex *V;
       V = malloc (sizeof(Vertex) * 3);
          ...
       V = realloc (V, sizeof(Vertex) * 4);
      ...
       free (V);
       return 0;
    }
    

    Version 2:

    struct Vertex
    {
        float x;
        float y;
        float z;
    
        Vertex *Next;
    };
    
    int main(..)
    {
      Vertex *V,*C;
    
       V = new Vertex;
        ...  
       C = new Vertex;
         V->Next = C;      
      ...
       delete C;
      ...
      return 0;
    }
    

    der rest erfordert nur ein wenig Gehirnschmalz und Vorsicht beim Pointer verbiegen..



  • ich würde das so machen:

    struct Vertex
    {
        float x;
        float y;
        float z;
    };
    
    struct Vertex *pvertex;
    int anzahl=3; //oder was auch immer
    
    pvertex==malloc(anzahl*sizeof(struct Vertex));
    
    anzahl = 5;
    
    pvertex==realloc(pvertex,anzahl*sizeof(struct Vertex));
    

    mfg


Anmelden zum Antworten