-3
std::map<std::string, myClass*> myMap
那么我将像如下:
if(!myKey.empty())
{
myMap[myKey] = this;
}
这有时是扔分割故障。
为什么?
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();
}
您应该为我们提供此代码的上下文。该代码隔离工作得很好。 – mfontanini
代码是巨大的,从核心转储,软件总是挂在这条线,然后进入地图库 – Kam
'我的地图'可能已被我们无法看到的一些代码损坏。你尝试过调试吗?可以更容易确定是否是这种情况。 – eran