-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