我在程序中,用到了CList
#include <afxtempl.h>class CSingle;
typedef CList<CSingle*, CSingle*> list;在自己的函数中用到了下面语句
CSingle* fun()
{
CSingle* one = NULL;
one = new CSingle;
....
return one;
}void func()
{
CSingle *Temp = NULL;
Temp = fum();
list.AddTail(Temp);
}......我在最后的Destory函数
用到了语句list.RemoveAll();
可是最后有内存泄露,请问是什么原因啊
我把其他的语句都屏蔽了,发现就是这里的错误,请指正!!!
Detected memory leaks!
Dumping objects ->
{2963} normal block at 0x009F5B80, 56 bytes long.
Data: <t%C H V > 74 25 43 00 CD CD CD CD 48 00 00 00 56 00 00 00
{1275} normal block at 0x009F5D20, 56 bytes long.
Data: <t%C ` > 74 25 43 00 CD CD CD CD 60 00 00 00 A1 01 00 00
#include <afxtempl.h>class CSingle;
typedef CList<CSingle*, CSingle*> list;在自己的函数中用到了下面语句
CSingle* fun()
{
CSingle* one = NULL;
one = new CSingle;
....
return one;
}void func()
{
CSingle *Temp = NULL;
Temp = fum();
list.AddTail(Temp);
}......我在最后的Destory函数
用到了语句list.RemoveAll();
可是最后有内存泄露,请问是什么原因啊
我把其他的语句都屏蔽了,发现就是这里的错误,请指正!!!
Detected memory leaks!
Dumping objects ->
{2963} normal block at 0x009F5B80, 56 bytes long.
Data: <t%C H V > 74 25 43 00 CD CD CD CD 48 00 00 00 56 00 00 00
{1275} normal block at 0x009F5D20, 56 bytes long.
Data: <t%C ` > 74 25 43 00 CD CD CD CD 60 00 00 00 A1 01 00 00
必须循环进行删除 delete one;
POSITION pos = myList.GetHeadPosition();while( pos != NULL )
{
delete myList.GetNext( pos );
}
myList.RemoveAll();
{
CSingle *Temp = NULL;
Temp = fum();
list.AddTail(Temp);
delete Temp;
Temp=NULL;
}