提问人:Ortwin 提问时间:9/2/2021 最后编辑:NathanOliverOrtwin 更新时间:9/2/2021 访问量:212
为什么我会收到警告:不要取消引用可能无效的指针
Why do I get the warning: Don't dereference a pointer that may be invalid
问:
启用 C++ 核心准则生存期检查 (Visual Studio 2019) 后,以下代码会生成我不明白的警告:
std::list<std::string> getKeys(const std::map<std::string, int>& entities)
{
std::list<std::string> rc;
for (auto const& el : entities)
{
rc.push_back(el.first);
}
return rc;
}
警告:
Don't dereference a pointer that may be invalid: '&el->first'.
'el.std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,int>::first'
may have been invalidated at line 67* (refers to the for-statement)
谁能解释为什么使用对 const 集合的引用进行迭代会导致无效指针?
答: 暂无答案
上一个:在命名空间中使用声明的范围
下一个:你是要从违反合同中恢复过来吗?
评论
&el->first
el.first
rc