|
안녕하세요. TList를 사용하는 중에 메모리 누수 문제가 있어서 질문드립니다.
void __fastcall TForm3::Button1Click(TObject *Sender)
{
ST_DATA* pData;
int i;
m_lList = new TList();
m_lList->Clear();
for(i = 0; i < 10000; i++)
{
pData = (ST_DATA*)new ST_DATA;
memset(pData, 0x00, sizeof(ST_DATA));
m_lList->Add(pData);
}
ShowMessage(L"추가 완료");
}
//---------------------------------------------------------------------------
void __fastcall TForm3::Button2Click(TObject *Sender)
{
while(m_lList->Count)
{
delete (ST_DATA*)(m_lList->Items[0]);
m_lList->Delete(0);
}
delete m_lList;
ShowMessage(L"삭제 완료");
}
//---------------------------------------------------------------------------
typedef struct _Data
{
bool bBool1;
bool bBool2;
int nInt1;
DWORDLONG dwlDWORDLONG1;
DWORDLONG dwlDWORDLONG2;
DWORDLONG dwlDWORDLONG3;
DWORDLONG dwlDWORDLONG4;
}ST_DATA;
위 소스는 메모리 해지 테스트를 위해서 만든 샘플 코드 입니다.
위와 같이 프로그램을 구성하였는데 메모리가 떨어지지 않고 그대로네요.
혹시 문제점을 아신다면 알려주시면 감사하겠습니다.
|