[转帖]mfc中cmap对象的创建与释放,防止内存泄漏
CMap <int,int,object*,object*> m_map;
for(int i=0; i<10; i++) { object *ob=new object(); m_map.SetAt(i,ob); } m_map.RemoveAll(); 删除所有元素,并不会释放所有元素所分配的内存? 要挨个进行释放, 然后再调用m_map.RemoveAll(), 否则将会引起内存泄漏 。 object* pObj= NULL; POSITION pos = m_map.GetStartPosition(); for(int i = 0; pos; i ++) { m_map.GetNextAssoc(pos, i, pObj); if (pObj) { delete pObj; pObj= NULL; } } m_map.RemoveAll(); |
所有的时间均为北京时间。 现在的时间是 03:52 AM. |