如果我们举这个例子:
std::map<int,foo*> intmap;
fillMap(intmap);
// I will force this to end(), in real life this could be a "find" output
std::map<int,foo*>::iterator iter = intmap.end();
if(iter->second != 0)
iter->second->whatever();
我在“whatever()”调用上但在“->second”空指针检查中没有出现分段错误(这是预期的,该示例没有故意检查“iter!= intmap.end()”):这是预期的行为吗?这个段会在“whatever()”调用上系统地出错,还是取决于特定的运行时内存条件?
提前感谢您的评论。贾科莫