C: правильно освобождает память многомерного массива
Допустим, у вас есть следующий код ANSI C, который инициализирует многомерный массив:
int main()
{
int i, m = 5, n = 20;
int **a = malloc(m * sizeof(int *));
//Initialize the arrays
for (i = 0; i < m; i++) {
a[i]=malloc(n * sizeof(int));
}
//...do something with arrays
//How do I free the **a ?
return 0;
}
После использования**a
как мне правильно освободить его из памяти?
[Обновить] (Решение)
Благодаря Тиму (и другим)ответТеперь я могу сделать такую функцию, чтобы освободить память из моего многомерного массива:
void freeArray(int **a, int m) {
int i;
for (i = 0; i < m; ++i) {
free(a[i]);
}
free(a);
}