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