Ошибка сегментации (ядро сброшено), но не могу понять - PullRequest
0 голосов
/ 03 февраля 2020

Насколько я понимаю, segfault обычно вызывается неправильным доступом к памяти или утечкой? Но я не могу понять, где это. Есть ли способ, как программа, которая будет go через ваш код и выяснить, где она вызывает эту ошибку? Пожалуйста, помогите.

1 Ответ

0 голосов
/ 03 февраля 2020

Когда вы используете отладчик, вы должны увидеть, что вы получили нарушение доступа на if (cur->symbol == word[i]). (Попробуйте дома.) Почему это происходит?

В DictionaryTrie::insert, если curr (== root) - это nullptr, вы выделяете узел и сохраняете его в root , но вы не обновляете curr. Затем вы вводите for l oop и ссылку curr->symbol. Поскольку curr является нулевым указателем, вы получаете нарушение прав доступа.

Простое исправление заключается в назначении

curr = root;

после присвоения значения root.

...