|
안녕하세요
만해입니다.
오늘 토요일이네요 모두들 즐거운 주말 보내세요
질문의 내용은요 이전에 제가 올린 소스의 일부분인데요
동적 할당한 메모리가 전혀 내려가지가 않아서
이러저리 원인 파악에 나서던중 아래 동적할당 삭제 부분이
실제로 메모리가 삭제 되지 않는것 같다는 생각이 들어서요
트래이스통해 작업 관리자의 메모리를 체크해보니
실제로 메모리가 내려가지가 않네요
삭제 구문이 잘못된건지
고수님들의 조언 부탁 드립니다.
아래 부분은 동적할당을 하는 부분 입니다.
typedef struct _TObjectType
{
char* Url;
unsigned int Depth;
unsigned int Count;
}TObjectType;
TObjectType *Obj = new TObjectType;
Obj->Count = 1;
Obj->Depth = ACurrentDepth+1;
Obj->Url = new char[Url.Length()+1];
strcpy(Obj->Url,Url.c_str());
ObjVector.push_back(Obj);
그리고 이부분이 동적할당을 삭제 하는 부분입니다.
for ( size_t i = 0 ; i < ObjVector.size() ; i ++ )
{
TObjectType* temp = ObjVector[i];
if ( temp->Url != NULL )
delete [] temp->Url;
delete temp;
}
ObjVector.erase(ObjVector.begin(),ObjVector.end());
vector<TObjectType*>(ObjVector).swap(ObjVector);
vector<TObjectType*> temp;
ObjVector.swap(temp);
ObjVector.clear();
vector<TObjectType*>(ObjVector).swap(ObjVector); <- Effective STL의 17번 문항을 인용
이렇게 제 나름의 최선을 다했는데 전혀 안되네요
고수님들의 도움 바랍니다.
|