Есть бинарное дерево, которое представляет собой англо-русский словарь. В одном методе мне нужно преобразовать ветку в дерево.
struct Elem
{
char eng[15]; // ключ
char rus[15]; // значение
Elem *left, *right, *parent;
};
Tree::Tree(Elem* node)
{
Copy(node, root);
}
void Tree::Copy(const Elem* from, Elem* to)
{
if (from == nullptr)
{
to = nullptr;
return;
}
to = new Elem;
strcpy_s(to->eng, 15, from->eng);
strcpy_s(to->rus, 15, from->rus);
cout << from->eng << '\t' << to->eng << endl;
Copy(from->left, to->left);
Copy(from->right, to->right);
}
Проверка:
Tree obj;
Insert(obj);
Tree obj2(obj.GetRoot());
cout << obj2.GetRoot();
_getch();
Так вот obj2.GetRoot() возвращает nullptr. Прохожу дебагером - всё отлично. Каждый узел правильно копируется в нужное место, но после отработки этого конструктора преобразования (если его можно так назвать), root сразу становится nullptr. Можете помочь отловить этот баг?