Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
据我了解,段错误通常是由无效的内存访问或泄漏引起的?但我不知道它在哪里。有没有像程序一样的方法可以遍历您的代码并找出导致此错误的位置?请帮忙。
当您使用调试器时,您应该会看到在if (cur->symbol == word[i]). (在家里试试这个。)为什么会这样?
if (cur->symbol == word[i])
在DictionaryTrie::insert中,如果curr(== root) 是 nullptr,则分配一个节点并将其存储在 中root,但不更新curr。然后进入for循环,并引用curr->symbol. 由于curr是空指针,因此您会遇到访问冲突。
DictionaryTrie::insert
curr
root
for
curr->symbol
简单的解决方法是分配
curr = root;
给 赋值后root。