void DeleteTree(Tree*root)
{
while (root != NULL) {
DeleteTree(root->left);
DeleteTree(root->right);
root = NULL;
delete root;
}
Посмотрите на свои последние две строки. Вначале Вы зануляете указатель, а потом удаляете данные по нему, то есть, по null. По хорошему, их нужно переставить местами. Ну и while не нужен.
void DeleteTree(Tree*root)
{
if(root != NULL) {
DeleteTree(root->left);
DeleteTree(root->right);
delete root;
root = NULL;
}
}
Должно быть так:
void DeleteTree(Tree*root)
{
if (root != NULL)
{
DeleteTree(root->left);
DeleteTree(root->right);
delete root;
}
}
А вы сначал обнуляете root, а потом удаляете его.
Надеюсь, это очепятка?
root = NULL;
delete root;
И вы все же сначала удаляете root
(освобождая память), а у потом обнуляете, а не пытаетесь удалять указатель NULL
?
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
В одномерном масиве, что состоит из n целих елементов что вводяться с клавиатуры, вычислить суму модулей елементов масива разположеных до максимального...
В этом коде использую структурыКод написаный без структур отработал с подобным вызовом:
Можно ли вмеcтоwrapper_button использовать амперсанд?