|
아...그렇군요..좋은 정보 감사합니다...
근데...메모리 해제가 좀 이상한거 같아 다시 질문드립니다..
메모리가 떨어지기는 하는데...점차적으로 올라가면서 랜덤하게 떨어지는데요..
이것이 caFree할때 메모리에서 해제되면서 떨어지는게 정상아닌가요..ㅡㅡ?
즉,
처음에 프로그램을 실행을 하면 ...
1. new를 이용하여 객체생성 -> 메모리 증가
2. Form화면이 뜬 경우 14증가 -> 메모리 증가
3. 조회 하여 32증가 -> 메모리 증가
4. caFree로 닫기 할때 -> 메모리 감소해야
되는것이 정상이라고 보여지는데 이상하게도
어쩔때는 메모리가 떨어지고....
어쩔때는 메모리가 안떨어지고 계속 그대로 인데요..
이게 정상적인 경우가 맞는건가요..ㅡㅡ??
정성훈.해미 님이 쓰신 글 :
: 폼 Close이벤트에 다음과 같이 사용해보세요.
:
: void __fastcall TestInfo::FormClose(TObject *Sender, TCloseAction &Action)
: {
: Action = caFree;
: }
:
: 폼을 닫고 메모리에서도 해제합니다.
:
: 도움이 되셨나요?
:
: -------------------------------------
: 작은 생각이 세상을 바꾼다 - 정성훈.해미 -
: -------------------------------------
:
:
: 김상윤 님이 쓰신 글 :
: : 제목대로 메뉴를 만든다음에...
: : 폼을 동적으로 create하였습니다...
: :
: : TestInfo = new TestInfo(this);
: : TestInfo->Show();
: :
: : 그런다음에
: :
: : TestInfo 폼에서 닫기 버튼을 통하여 폼을 닫았습니다...
: : BtnCloseClick()
: : {
: : Close();
: : }
: :
: : 근데 close를 하였지만 메모리가 줄지가 안네요...ㅡㅡ;;
: :
: : Close()하면 폼도 죽고 객체(TestInfo)도 죽는게 정상아닌가요..ㅡㅡ?
: :
: : 그래서 delete를 이용해서 Close(); 부분 대신에..
: :
: : delete TestInfo;
: : TestInfo = NULL;
: :
: : 하고 실행했더니
: :
: : Access Violation 에러가 모듈 rtl60.bpl에서 난다고 합니다.
: :
: : 근데...더 이상한건 랜덤하게 에러가 발생합니다...ㅡㅡ;;
: : 즉, 처음 두세번 에러가 나다가 폼을 살렸다 죽였다 를 반복하면
: : 에러가 안납니다..ㅡㅡ;;
: :
: : 버그인가요.....혹시 이런 경험 ...없으신가요..?ㅡㅡ?
: :
: : 동적으로 생성한 폼에서는 Close()로는 메모리에서 삭제가 안되는건가요..ㅡㅡ??
: :
: : 알려주세여....^^;;
|