Hi zusammen,
ich hoffe, meine Frage ist hier richtig. Es geht um ein generelles Problem in C, nicht in Bezug auf spezielle Hardware/µC.
Ich versuche mich gerade an der dynamischen Speicherverwaltung mit zweidimensionalen Arrays. Durch googlen hab ich das mit malloc super hingekriegt. Jetzt will ich das Array aber auch vergrößern und verkleinern, also mit realloc arbeiten. Dazu hab ich leider nichts gefunden, dass mir wirklich weiterhelfen würde.
Mein Code sieht aktuell so aus:
Code:
void main(void){
int i, j;
double **testarray = NULL;
testarray = (double**) realloc(testarray, 5 * sizeof(double*));
for (i = 0; i < 5; i++){
if(testarray[i] = (double*) realloc(testarray, 5 * sizeof(double)) == NULL)
printf("\nFEHLER\n");
else
printf("\nOK\n");
}
// Werte in gerade vergrößertes Array schreiben
for(i=0; i<5; i++){
for(j=0; j<5; j++){
testarray[i][j] = i+j;
}
}
// Ausgabe
for(i=0; i<5; i++){
for(j=0; j<5; j++){
printf("testarray[%i][%i] = %f\n", i, j, testarray[i][j]);
}
}
}
Ich bekomme auch fünfmal "OK" angezeigt, aber wenn dann Werte in das Array geschrieben werden sollen, stürzt das Programm ab.
Was mache ich falsch?
Danke schonmal für jeden Tip!
Schönen Sonntag,
V:X
Lesezeichen