我认为这张地图是有效的,当我在调试时悬停在它上面时,它显示“pMap:[0]()”...
当我尝试删除这个空地图时,我的应用程序就会退出,并且我会在输出窗口中得到一个“第一次机会异常”,错误代码为0xsomenumber:“所调用的对象已与其客户端断开连接”。
这是什么意思?
谢谢。。
编辑:这里有一些示例代码:
typedef map<const char*, StructA*, StructB> myMap;
typedef vector<myMap *> myMapStack;
StructB有一个重载运算符()
。
在我的代码的某一部分,一个类的构造函数调用一个名为InitClass()的方法来初始化一个指向myMap的指针:
pMyMap = new myMap; // I also tried this with new myMap()
// this pointer is then pushed onto the a map stack
pMyMapStack.push_back(pMyMap);
在这个类的析构函数中,我会进行后续操作。
pMyMap = pMyMapStack.back();
pMyMapStack.pop_back();
delete pMyMap; // after I step over this line the app quits.. and displays that message
谢谢
编辑:我回退到了一个之前可用的版本,现在它正在正常工作。
可用的代码类似于:
// after the pMyMapStack.pop_back()
int x = pMyMap->size();
if (x >= 0)
delete pMyMap;
之前我已经将其更改为以下内容:
// after the pMyMapStack.pop_back()
int (x = pMyMap->size();
if (x >= 0){
pMyMap->clear();
delete pMyMap;
}
很奇怪.. 代码可能有其他问题,但我还没有找到它在哪里.. 如果我把整个代码都发布出来的话,它太大了(而且我可能会被解雇),所以就让它保持现状吧..
我认为可能是指向一个空映射的指针,我正在尝试清除或删除它,这可能导致了问题..
感谢所有试图帮助我的人... :)