我在C ++ Primer中编写了exercise12.28,但是我被困在shared_ptr中。代码可以编译,但在执行时会崩溃。我以为我误用了shared_ptr。请帮我检查以下代码:
mAdapter.notifyItemRangeChanged(size+1, data.size());
答案 0 :(得分:1)
您忘记检查地图中是否存在该字词。如果密钥不存在,则find
会返回word_line.end()
,在这种情况下find_word->second
具有未定义的行为。
即使找到了单词,您也忘记检查共享指针是否指向null。如果确实指向null,则*(find_word->second)
具有未定义的行为。