分段错误(核心已转储)但无法弄清楚
Segmentation fault (core dumped) but can't figure out
据我了解,段错误通常是由无效内存访问或泄漏引起的?但我不知道它在哪里。有没有像程序这样的方法可以遍历您的代码并找出导致此错误的位置?请帮忙。
当您使用调试器时,您应该会看到在 if (cur->symbol == word[i])
处出现访问冲突。 (一定要在家里试试。)为什么会这样?
在DictionaryTrie::insert
中,如果curr
(==root
)是一个nullptr,你分配一个节点并存储在root
中,但你不更新curr
。然后您进入 for
循环,并引用 curr->symbol
。由于 curr
是一个空指针,您会遇到访问冲突。
简单的解决方法是分配
curr = root;
为 root
赋值后。
据我了解,段错误通常是由无效内存访问或泄漏引起的?但我不知道它在哪里。有没有像程序这样的方法可以遍历您的代码并找出导致此错误的位置?请帮忙。
当您使用调试器时,您应该会看到在 if (cur->symbol == word[i])
处出现访问冲突。 (一定要在家里试试。)为什么会这样?
在DictionaryTrie::insert
中,如果curr
(==root
)是一个nullptr,你分配一个节点并存储在root
中,但你不更新curr
。然后您进入 for
循环,并引用 curr->symbol
。由于 curr
是一个空指针,您会遇到访问冲突。
简单的解决方法是分配
curr = root;
为 root
赋值后。