möchte mit malloc speicher für eine struktur reservieren



  • hab eine struktur, sie sieht so aus:

    struct produkt {
        char bezeichnug [100];
        char Beschreibung [200];
        int Sonummer;
        int zahl;
        int Bewertung;
    }
    

    in einer while schleife möchte ich jetzt solange eine neue "stuktur produkt" erzeugen, bis bedingung nicht mehr erfüllt ist.
    wie kann ich so was implementieren?

    sollte so aussehen:

    int variable;
    int zaehlvariable = 0;
    while (zaehlvariable < variable)
    {
    
    /* hier sollte jedes mal eine struktur obigen typs erstellt werden!
       (produkt1, produkt2, produkt3,...bis zaehlvariable =100)
    
    }
    

    Danke schon mal im voraus!

    Edit by c.rackwitz: es gibt [cpp] Tags



  • Ich nehme mal an, dass "variable" schon vor dem Eintritt in die Schleife feststeht. Dann steht ja auch schon fest wieviel Strukturen du benötigst. Dann musst du ledigich einen Zeiger auf diese Struktur anlegen, und mit malloc() bzw. calloc() Speicher für diesen Zeiger reservieren. Dann kannst du schön arraylike auf die Strukturen zugreifen.



  • Hallo,

    normalerweise machst Du entweder mit einer verketteten Liste
    oder mit einen Zeigerarray auf die Struktur. In einem
    "echten Programm macht man das natürlich" Ordentlich.

    Verkettete Liste wäüre sowas:

    struct mystruct
    {
    struct DeineStruktur;
    struct mystruct *p_next;
    }

    Nun kannst Du die Liste mit jeweils pnext fortführen:

    curItem->p_next = (struct mystruct*)malloc (sizeof (mystruct);
    curItem->p_next->p_next = NULL; // Ende der Liste kennzeichnen.


Anmelden zum Antworten