doble matriz libre o corrupción 3d en C
Recibo un error de "doble liberación o corrupción" al liberar una matriz 3D. ¿Alguien puede decirme dónde está el problema en el código?El tamaño de la matriz es 2 * N * N. El valor de N aquí es 100. Incluso sin lanzar, el mismo resultado. Aquí está el código:
// 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);
El programa funciona bien pero al final recibo un error 'doble libre o corrupción (! Prev): 0x08cd24f8' Abortado (núcleo volcado).