double frei oder Korruption 3D-Array in C
Ich erhalte die Fehlermeldung "Double Free oder Corruption", während ein 3D-Array freigegeben wird. Kann mir bitte jemand sagen, wo das Problem im Code liegt? Die Größe des Arrays beträgt 2 * N * N. Der Wert von N ist hier 100. Auch ohne Casting das gleiche Ergebnis. Hier ist der Code:
// Mallocing
double ***h = malloc(2 * (sizeof(double**)));
for(i = 0; i < N; i++) {
h[i] = malloc(N * sizeof(double*));
for(j = 0; j < N; j++) {
h[i][j] = malloc(N * sizeof(double));
}
}
// Freeing
for(i = 0; i < N; i++) {
for(j = 0; j < N; j++) {
free(h[i][j]);
}
free(h[i]);
}
free(h);
Das Programm funktioniert einwandfrei, aber am Ende erhalte ich die Fehlermeldung "double free or corruption (! Prev): 0x08cd24f8" Abgebrochen (Core Dumped).