|
코드상에 문제는 없습니다.
메모리 변화를 쉽게 보려면 구조체 크기를 크게 만드세요.
int nInt1; -> int Int1[1000]; 정도로 변경해보면 메모리 변화 바로 볼 수 있습니다.
그리고 ShowMessage() 사용하지 마세요.
Message 창이 출력되면서 메모리 변화가 있습니다.
그리고 당연한 거지만 Button1누르고 Buttton2 누르고 한번씩 한건 맞으시죠?
만약 Button1만 여러번 누르면 당근 메모리 누수 발생합니다.. 혹시나 하는 맘에..
버튼 몇번 누르고 메모리 체크하는건 확실하지 않구요.
타이머 사용하여 해당 버튼을 1시간 동안 번갈아 가벼 자동 클릭하도록
메크로 처럼 만들어서 테스트 해보세요.
처음 메모리와 이후 메모리 차이를 비교해 보시면됩니다.
이동재 님이 쓰신 글 :
: 적용은 해보았으나 아직 똑같은 상황이네요.(아직도 메모리가 해지되지 않습니다.)
:
: 빠른 답변 감사드립니다.
:
: 님이 쓰신 글 :
: : while(m_lList->Count)
: : : {
: : : delete (ST_DATA*)(m_lList->Items[0]);
: : : m_lList->Delete(0);
: : : }
: : :
: : : delete m_lList;
: : :
: : : ShowMessage(L"삭제 완료");
: :
: : 이부분을
: : for(int i = 0; i < m_IList->Count; i++)
: : {
: : ST_DATA *pstData = (ST_DATA *) m_IList->Items[i];
: : delete pstData;
: : }
: :
: : delete m_IList;
: :
: : 로 바꿔보세요
: :
: :
: :
: : MoveJ 님이 쓰신 글 :
: : : 안녕하세요. 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;
: : :
: : : 위 소스는 메모리 해지 테스트를 위해서 만든 샘플 코드 입니다.
: : :
: : : 위와 같이 프로그램을 구성하였는데 메모리가 떨어지지 않고 그대로네요.
: : :
: : : 혹시 문제점을 아신다면 알려주시면 감사하겠습니다.
|