CObArray 和 CArray 执行效率和内存泄露问题
请问CObArray和CArray的执行效率哪个高?另外频繁大量的调用会不会出现内存泄露问题?
详细情况:
我建立CObArray m_ObArray 和 CArray <CTestMsg, CTestMsg&> m_Array两个变量,在其中存放数据,并且反复频繁操作.
//--添加数据到CObArray
CTestMsg * pMsg;
for (i=0; i <10000; i++){
pMsg = new CTestMsg;
... //pMsg初始化
m_ObArray.Add((CObArray *)pMsg);
}
//--删除CObArray中数据
for (i=0; i <=m_ObArray.GetUpperBound(); i++){
delete (CTestMsg *)m_ObArray.GetAt(i);
}
m_ObArray.RemoveAll();
----------------------------------
//--添加数据到CArray
CTestMsg Msg;
for (i=0; i <10000; i++){
...//Msg初始化
m_Array.Add(Msg);
}
//--删除CArray中数据
m_Array.RemoveAll();
请问,上面代码中有没有内存泄露?另外执行效率上哪个更高些?有没有提高效率的方法?
请高手们赐教
[解决办法]
如果是对象的话CObArray效率高一些.很多的时候是指针操作,不过要注意内存泄露,删除的时候及时释放内存
[解决办法]
看楼主的代码,不会内存泄漏的,一般大数据频繁操作的话,还是用指针效率高。
[解决办法]
按上面那段代码不会有内在泄露,内在没有回到原来的值是正常的,系统将它保留了,使下次分配时更快。