Освобождение памяти в проекте Quad Tree - PullRequest
0 голосов
/ 27 февраля 2019

У меня есть программа, которая создает четырехугольное дерево, используя malloc.Затем у меня есть функция, которая затем удаляет дерево, освобождая все узлы.

На дереве первого уровня я освобождаю все 5 ресурсов, однако на уровне 2 я освобождаю только 17 из 21 сервера, у меня возникли проблемыВидя, в чем проблема

1 Ответ

0 голосов
/ 27 февраля 2019

В случае, если у вас есть дети, вы пропустите текущий узел.Алгоритм должен выглядеть примерно так:

void removeTree(Node *node)
{
    if (node == NULL) 
        return;

    int i;
    for (i = 0; i < 4; ++i) {
        removeTree(node->child[i]);
        node->child[i] = NULL;
    }

    free(node);
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...