Я реализовал в C m, n, k-игру с AI. Игра отлично работает, но когда мне нужно освободить дерево решений, оно всегда выдает исключение «Исправление доступа к доступу».
Это реализация структуры дерева решений:C - удаление узлов n-арного дерева
typedef struct decision_tree_s {
unsigned short **board;
status_t status;
struct decision_tree_s *brother;
struct decision_tree_s *children;
} decision_tree_t;
И это реализация функции delete_tree
:
void delete_tree(decision_tree_t **tree) {
decision_tree_t *tmp;
if (*tree != NULL) {
delete_tree((*tree)->children);
delete_tree((*tree)->brother);
free(*tree);
*tree = NULL;
}
}
Я редактировал функцию удаления дерева обратно, как это было в самом начале проекта, и теперь удаление дерева, кажется, работает хорошо. –