0
我有一個構造函數,看起來像這樣(在C++):構造函數後對象不存在?
Interpreter::Interpreter() {
tempDat == new DataObject();
tempDat->clear();
}
的DataObject的構造也絕對沒有什麼,並明確這是否:
bool DataObject::clear() {
//clear the object
if (current_max_id > 0) {
indexTypeLookup.clear();
intData.clear();
doubleData.clear();
current_max_id = 0;
}
}
這些成員的定義如下:
std::map<int, int> indexTypeLookup;
std::map<int, int> intData;
std::map<int, double> doubleData;
現在奇怪的是,我得到了tempDat-> clear()的段錯誤。 gdb說tempDat爲空。這怎麼可能? tempDat的構造函數不能失敗,它看起來像這樣:
DataObject::DataObject() : current_max_id(0)
{
}
我知道有做這樣的數據結構的可能是更好的辦法的,但我真的想知道這個內存設計缺陷問題的根源..
DOH! (這是多麼愚蠢......)謝謝,我看了一小時後沒有看到...... – openbas2 2010-04-03 10:27:39