nod*_*nja 10 c++ memory pointers object delete-operator
在我的C++程序中,我使用new在一个函数中创建对象.这些对象被插入到一个集合中.当我想从集合中删除对象时,我在for循环中使用了一个迭代器.当我从集合中删除对象时,我仍然需要删除该对象以释放其内存,对吗?我尝试使用删除,但后来我得到一个错误,说没有分配被释放的指针.那么怎么做呢?
这是我创建对象然后将其插入集合的代码
set <myObject> myobjectlist;
myObject *myobject = new myObject;
myobjectlist.insert(*myobject);
Run Code Online (Sandbox Code Playgroud)
在另一个函数中,我尝试从集合中删除一个对象,并释放它的内存:
for (set<myObject>::iterator i = myobjectlist.begin(); i != myobjectlist.end(); i++)
if (i->myObjectID == myObjectID)
{
myobjectlist.erase(*i);
delete &i;
break;
}
Run Code Online (Sandbox Code Playgroud)
这没有"删除"部分工作正常.我添加它是因为我认为来自对象的内存没有被释放.