CMapStringToOb map;
CAge* pa;map.SetAt( "Bart", new CAge( 13 ) );
map.SetAt( "Lisa", new CAge( 11 ) );
map.SetAt( "Homer", new CAge( 36 ) );
map.SetAt( "Marge", new CAge( 35 ) );
ASSERT( map.Lookup( "Lisa", ( CObject*& ) pa ) ); // Is "Lisa" in the map?
map.RemoveAll();以上代码是不是有内存泄漏的问题?
CAge* pa;map.SetAt( "Bart", new CAge( 13 ) );
map.SetAt( "Lisa", new CAge( 11 ) );
map.SetAt( "Homer", new CAge( 36 ) );
map.SetAt( "Marge", new CAge( 35 ) );
ASSERT( map.Lookup( "Lisa", ( CObject*& ) pa ) ); // Is "Lisa" in the map?
map.RemoveAll();以上代码是不是有内存泄漏的问题?
解决方案 »
- 我手动注册一个WNDCLASS类,并创建一个窗口,为什么不输入hInstance,也成功?那hInstance参数有什么作用?
- 如何读取/存储 ACCESS/SQL数据库中时间字段中包含的毫秒数据?
- 如果在监听端同意接入前得到请求请入方的IP啊?
- "unexpected end of file while looking for precompiled header directive"错误是怎么回事?
- 请教各位大虾,如何在程序启动时同时显示两个模式Dialog?
- 请问如何阻止用户拖动CListCtrl中的标题栏?
- StretchBlt问题,困扰了我快一个星期了.
- 请问VIEW和DOC的区别和联系
- VC2010的IDE编辑器中,空格都被显示成了小点,怎么办
- 请问如何在若干ie网页中获得当前活动ie网页
- CreateThread有内存泄漏,微软为什么不把其实现改得和_beginthreadex()一样啊
- 一个很简单的问题
另外这种方式有问题的,你应该先查询一下里面是否有一个同名元素,如果没有再加进去,否则如果同名的话,内存泄漏是无法避免的
也就是说:如果CObArray中的元素是指针,CObArray的析构函数是不会把指针的指向地址free掉的!所以,如果要free指针的指向地址的话,就需要自己手工free,如下:for (i=0;i < myArray.GetSize();i++)
{
CBase* pBase = (CBase*) myArray.ElementAt(i);
delete pBase ;
}
myArray.ReMoveAll();