使用容器时报错:expression:(“_Pvector == NULL || (((_Myvec *)_Pvector)->_Myfirst<= _Ptr && _Ptr <= ((_Myvec*)_Pvector)->_Mylast)”, 0)
原代码:
std::map<unsigned long long, Link*>::iterator itLink = mapLink.begin();
for(; itLink != mapLink.end(); ++itLink)
itLink->second->Clear();
出错原因:在之前使用Link*后对其做了delete Link*操作,对象已被删除。mapLink中Link*已成为野指针,所以itLink->second->Clear()操作报错。
总结:new和delete成对出现,同一对象的new和delete应尽量写在同一文件中,方便管理。