我有一个
std::map<std::string, myClass*> myMap
然后我插入如下:
if(!myKey.empty())
{
myMap[myKey] = this;
}
这有时会引发分段错误。
为什么??
也许您的 myMap 不再可访问。例如,它可能是对已删除指针的引用,或者更可能是已删除类的成员变量:
class MyClass {
public:
selfInsert(std::string myKey) {
if(!myKey.empty()) {
myMap[myKey] = this;
}
}
private:
std::map<std::string, myClass*> myMap;
}
int main()
{
MyClass *a = new MyClass();
delete a;
a->selfInsert();
}