C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[15879] [Q] TList 의 item 삭제하면 참조된 object도 삭제됩니까? (코드 있음)
최성규 [cs101] 808 읽음    2002-02-27 18:11
제목만으론 정확히 표현이 안되는 군요. 예제 코드를 적어 볼께요.

typedef struct tagMyData {
    int a;
    int b;
} TMyData;
...
TList *MyList;
...
// Data Add.. 이런 식으로 적당한 갯수 add 했다 합시다.
TMyData *md = new TMyData;
md->a = 10;
md->b = 100;
MyList->Add(md);

// 하나의 데이터 삭제 (여기에 질문이 있습니다)
// For a given index N (N은 당근  N >=0 && N < MyList->Count  임.)
// OList->Items[N] 은 (void *) 이잖아요? 그래서,
1) TMyData *md = (TMyData *)OList->Items[N];    // 과 같이 md 로 casting된 pointer를 받고,
2) delete md;         // delete 연산자로 OList->Items[N] 이 참조하는 메모리를 해제 시도.
3) OList->Delete(N);  // OList 의 item 자체를 삭제

어떻습니까? 저는 나름대로 신경쓴다고, TList 의 한 Item이 참조하는 메모리를
먼저 날리고, 그 담에 TList의 item 자체를 삭제(Delete) 시도했던 것입니다.
이게 맞는 겁니까?

아니면, 3) OList->Delete(N); 만 해도 2) 에서 하고자 했던 참조된 메모리 해제까지
같이 하는 것입니까?

오래 전부터 애매하게 생각했던 부분인데, 이제야 질문을 올립니다.

+ -

관련 글 리스트
15879 [Q] TList 의 item 삭제하면 참조된 object도 삭제됩니까? (코드 있음) 최성규 808 2002/02/27
15882     [자답] [Q] TList 의 item 삭제하면 참조된 object도 삭제됩니까? (코드 있음) 최성규 888 2002/02/27
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.