Как я могу освободить неправильную *** матрицу, не зная ее размера? - PullRequest
0 голосов
/ 24 января 2019

Я должен создать функцию уничтожить пустоту (матрица int ***); использовать для освобождения матрицы И я не знаю, как я могу освободить его, не зная его размеров

У меня есть несколько идей или пример кода.

1 Ответ

0 голосов
/ 24 января 2019

Вы должны иметь соглашение, что только указатели перед значением дозорного (например, NULL) должны быть освобождены.

void destroy (int ***matrix) {
    if (matrix == NULL) return;

    for (int i = 0; matrix[i]; ++i) {
        for (int j = 0; matrix[i][j]; ++j) {
            free(matrix[i][j]);
        }
        free(matrix[i]);
    }
    free(matrix);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...