Свободная куча памяти указателя на переменную указателей

В моем коде есть переменные, которые являются указателем на указатель, и я не знаю, каков размер их выделенной памяти. Как я могу освободить память переменных? Предположим, следующие переменные:

int*** a;
int** b;

а знаете какой код для освобождения возможной выделенной им памяти?

2 ответа

Во -первых, у вас есть,

int*** a;
int** b;

Итак, у вас есть 3-мерная а, 2-мерная b, поэтому вам нужно выделить 1 измерение за один раз. например

a = (int ***) malloc(sizeof(int **) * SIZE1); // presuming SIZE1 predefined

затем в цикле i, работающем от 0 до SIZE1 -1, выделите для [i]. например

a[i] = (int **) malloc(sizeof(int *) * SIZE2); // presuming SIZE2 predefined

и продолжай в том же духе. Во время освобождения сделайте это наоборот, например, в цикле, который работает от 0 до SIZE1 -1,

free(a[i]);

наконец, бесплатно как:

free(a);

Надеюсь, вы поняли идею!

Вам просто нужно передать указатель на free если он возвращается malloc, calloc или же realloc,

Другие вопросы по тегам