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
[20057] Re:TList는 자동으로 메모리를 해제할 수 없습니다. 속도도 더 느리고...
김백일 [cedar] 1895 읽음    2002-07-12 15:00
VCL의 TList와 STL의 list, vector, deque과는 설계 철학부터가 다릅니다.

TList의 사용시에 주의할 점에 대해서는
빌더 헬프에도 있고, Tip'N Tricks와 FAQ에 각각 올라와 있습니다.

임프님의 글:
http://www.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_tip&no=14

길랄라님의 글:
http://www.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_faq&no=18

정리하면, TList는 보이드 포인터(void*) 값만을 저장하는 배열과 유사한 자료구조입니다.
그래서 객체를 삽입할 때는 매번 new로 동적 할당을 해서 삽입하고,
객체를 삭제하기 전에는 미리 delete로 메모리를 해제해야 합니다.
delete로 객체를 해제하지 않고, TList 객체 자체가 삭제(스코프에서 벗어난다든지 해서)되면
그대로 TList 안에 객체들의 크기의 합 만큼 메모리 누수가 일어납니다!


+ -

관련 글 리스트
20035 TList에서 AnsiString을 타입캐스팅 해서 void*넣었을때... 심윤수 1112 2002/07/11
20037     Re:TList에서 AnsiString을 타입캐스팅 해서 void*넣었을때... 양정석 1613 2002/07/11
20061         AnsiString만 저장한다고 하면, TStringList를 쓰세요. 김백일 1823 2002/07/12
20038         TList 대신 std::list를 쓰실 것을 권합니다. 김백일 2828 2002/07/11
20044             TList도 자동으로 메모리를 해제할 수 있습니다. 속도도 더 빠르고... (냉무) 박정모 1436 2002/07/12
20057                 Re:TList는 자동으로 메모리를 해제할 수 없습니다. 속도도 더 느리고... 김백일 1895 2002/07/12
20058                     험... 별로 할 말이 없습니다. 그럼 그렇게 알고 계속 쓰십시요. (냉무) 박정모 1169 2002/07/12
20060                         '그렇게만' 알고 계시지 말고, STL을 한 번 써보세요. 김백일 1606 2002/07/12
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.