【问题标题】:Calling remove on an non existing record crashes program在不存在的记录崩溃程序上调用 remove
【发布时间】:2017-04-01 15:58:14
【问题描述】:

在为表中不存在的记录调用 remove 后,程序崩溃...我假设传入了一个空值,我在某处的逻辑步骤中丢失了。

【问题讨论】:

  • 请阅读How to debug small programs,了解如何使用调试器。调试器是任何程序员工具箱中必不可少的工具,即使对于业余程序员来说,知道如何使用它也是一项基本技能。
  • 如果你有一个相当新的编译器,当你写=时它应该会警告你,但最有可能的意思是==。如果没有,请考虑升级它或查看文档以了解如何启用更多警告。

标签: c++ hashmap logic hashtable


【解决方案1】:

崩溃是意料之中的。您不会在 find 中检查 nullptr。您可以轻松验证这一点:在创建哈希表后执行 find。

【讨论】:

  • nullptr 检查确实是问题所在。我已经更新了我的问题。现在对不应该在表中的记录调用 remove() 后,它也会崩溃。
  • 这是第二个问题,你应该问一个新问题。另外,删除源代码后,您认为人们会如何回答您的问题?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-12
  • 1970-01-01
相关资源
最近更新 更多