0

据我了解,段错误通常是由无效的内存访问或泄漏引起的?但我不知道它在哪里。有没有像程序一样的方法可以遍历您的代码并找出导致此错误的位置?请帮忙。

4

1 回答 1

0

当您使用调试器时,您应该会看到在if (cur->symbol == word[i]). (在家里试试这个。)为什么会这样?

DictionaryTrie::insert中,如果curr(== root) 是 nullptr,则分配一个节点并将其存储在 中root,但不更新curr。然后进入for循环,并引用curr->symbol. 由于curr是空指针,因此您会遇到访问冲突。

简单的解决方法是分配

curr = root;

给 赋值后root

于 2020-02-03T20:20:51.140 回答