Поэтому я пишу троичное дерево и получаю ошибки сегмента после 20 вставок. Когда я изолирую проблему в GDB, я получаю очень странную ошибку, которую я никогда раньше не видел.
в приведенном ниже коде оператор more — это еще один NODE, и этот узел ДОЛЖЕН быть NULL (или другим узлом), но когда я нахожусь в GDB и проверяю его значение, я получаю * tempNode-> 0x4, что заставляет мой код пытаться установить значение more ( 0x4) как текущий узел и приводит к ошибке сегмента.
if( ! tempNode->greater )else
{
tempNode = tempNode->greater;
}
Вот вывод GDB:
(gdb) p * tempNode-> больше
Невозможно получить доступ к памяти по адресу 0x4
застряли на несколько часов, есть идеи?
Задача ещё не решена.
Других решений пока нет …