dupla matriz livre ou corrupção 3d em C
Eu recebo um erro de "dupla liberdade ou corrupção" ao liberar uma matriz 3D. Alguém pode me dizer onde está o problema no código?O tamanho da matriz é 2 * N * N. O valor de N aqui é 100. Mesmo sem vazamento, o mesmo resultado. Aqui está o 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);
O programa funciona bem, mas no final recebo um erro 'em dobro livre ou corrompido (! Prev): 0x08cd24f8' Abortado (núcleo despejado).