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