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
[70489] Re:ListView 에서 Add()와 Count의 차이점
specctra [] 2284 읽음    2013-12-10 15:32
저도 비전문가라 답변이 정확하지 않을 수 있습니다.
Add()는 추가되는 item을 추가하는 것이빈다. 따라서 해당 아이템을 가리키는 포인터를 저장할 메모리 만큼 자동으로 메모리가 늘어나겠지요.
Count는 현재 할당된 item을 지정하는데 할당된 포인터 갯수 즉 아이템 개수를 정수로 알려주는 속성입니다.
아마도 read only일 것입니다.
따라서 count에 아무리 정수 값을 할당해봐야 할당되지 않을 겁니다.
그러니까 count는 메모리가 늘어나거자 줄어드는 것하고는 상관이 없겠지요.

압9정 님이 쓰신 글 :
: 안녕하세요. 신입 개발자 입니다.
:
: 제가 C++ 빌더를 활용하여 프로그래밍을 하다가 궁금한게 생겨서 질문 올립니다.
:
: 제가 만든 프로그램에서 ListView (vsReport)에 5000개 정도의 Data가 들어갑니다.
:
: 제가 처음에는 이런 식으로 데이터를 추가하였습니다.
:
: ListView1->Items->Clear();
:
: for(i = 0; i < 5000; i++)
: {
:     ListView1->Items->Add();
: }
:
: 그러다가 OwnerData 프로퍼티를 true 로 바꿔주고 OnData를 사용하게 되었는데요.
:
: 원래 기존에는 Clear()를 해주면 메모리까지 같이 지워졌는데 메모리가 안지워 지고 계속 늘어났습니다.
:
: 그래서 빌더포럼 글을 찾아보다가  OwnerData를 사용하면 ListView1->Items->Count = 5000; 이런 식으로 써도 된다고 하더군요.
:
: 그래서 아래와 같이 바꿔보았습니다.
:
: ListView1->Items->Clear();
:
: ListView1->Items->Count = 5000;
:
: 이렇게 했더니 아예 메모리가 증가하지 않더군요.
:
:
:
: 해결되어서 기쁘지만 둘의 차이점이 무엇인지 도무지 알 수가 없기도 하고
:
: 이 부분을 알게 되면 나중에 프로그래밍 할 때 도움이 될 것같아 질문을 올립니다.
:
: ListView1->Items->Add();
: ListView1->Items->Count;
:
: 메모리에 관련되서 이 둘의 차이점이 있나요?

+ -

관련 글 리스트
70295 ListView 에서 Add()와 Count의 차이점 압9정 4024 2013/11/05
70489     Re:ListView 에서 Add()와 Count의 차이점 specctra 2284 2013/12/10
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.