dynamische Struktur in "feste" struktur?



  • // spätere dyn. struktur
    struct erg{
    	int ru;
    	int mat;
            int bau;
    };
    // "feste" struktur
    struct result{
    	int anzahl;
    	struct erg *daten;
    };
    
    struct result returnresult;
    
    //beim Datenfüllen über Schleife
    returnresult.daten = (struct erg*) realloc (returnresult.daten, gruppennummer * sizeof(struct erg));
    
    //außerhalb schleife
    returnresult.anzahl = gruppennummer;
    

    Da knallts bei mir 😞

    Eigentlich will ich nur in meiner Methode zu den "struct erg" Daten noch die Anzahl der erg-Elemente als return-Wert mitgeben. Daher dachte ich, dass ich das ganze nochmal in eine Struktur packe.
    Wie kann ich das machen?

    gruß
    Dominik



  • Wie genau äußert sich das "hier knallt's"? Ich vermute ja auf den ersten Blick eine Index-Überschreitung - du darfst nur die Indizes 0 bis nr-1 ansprechen, alles andere gehört dir nicht:

    for(int nr=1;nr<=1000;++nr)
    {
      daten=realloc(daten,nr*sizeof(struct erg));
      daten[nr-1].ru=4711; //OK
      daten[nr].mat=0x0815;//Fehler!
    }
    

    (ein weiterer Fehler könnte es sein, daß du den Zeiger vor der Schleife nicht initialisiert hast - entweder mit NULL oder mit dem Rückgabewert von malloc()/realloc())



  • das mit "nr-1" hatten wir gestern schon 😉

    Es lag daran, dass ich das nicht initialisiert hatte (vor schleife).

    thx
    dominik


Log in to reply