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
[10643] Re:Re:Re:[질문] exception class EOutOfResources
최보현.U&I [uriduri] 1366 읽음    2001-09-05 14:04
수성 님이 쓰신 글 :
: 먼저 답변에 감사 드립니다.
:
: 메모리해제문제...
:
: 그렇다면...다음의 코드에서 문제가 있는지 말씀해 주십시오
:
:     for (i=0;i<9;i++)
:     {
:       LaneNum = i;
:       for (j=0;j<3;j++)
:       {
:         temp = i*3+j+1;
:         if (Lee){ delete Lee; Lee = NULL; }
:         if (MainForm->bm){ delete MainForm->bm; MainForm->bm = NULL; }
:         Lee = new TLee();
:         MainForm->bm = new Graphics::TBitmap();
:         MainForm->bm->LoadFromFile("C:\\B"+IntToStr(temp)+".bmp");
:         Lee->LoadToClass(MainForm->bm);
:         A(j);
:       }
:       B();
:     }
:
:     for (i=0;i<9;i++)
:     {
:       LaneNum = i;
:       for (j=0;j<3;j++)
:       {
:         temp = i*3+j+1;
:         if (Lee){ delete Lee; Lee = NULL; }
:         if (MainForm->bm){ delete MainForm->bm; MainForm->bm = NULL; }
:         Lee = new TLee();
:         MainForm->bm = new Graphics::TBitmap();
:         MainForm->bm->LoadFromFile("C:\\B"+IntToStr(temp)+".bmp");
:         Lee->LoadToClass(MainForm->bm);
:         C();
:         D();
:       }
:     }
:     if (Lee){ delete Lee; Lee = NULL; }
:     if (MainForm->bm){ delete MainForm->bm; MainForm->bm = NULL; }
:
: 클래스 TLee 자체에 문제가 있는건지...아니면...수차례 반복된 객체 생성과 해제에 있는지...
: 의견을 듣고 싶습니다.
: 참고로...에러 메시지 발생시점은 총54번 루프중 36번째에서 발생합니다...

유엔아이 현입니다.

뭐 보기엔 특별한 문제는 못 찾을것 같군요~ 또,  박복된 객체 생성과 해제가 문제가 될수도 있으나

뭐 54번 루프중 36 번째라 ... 별 문제가 않될것 같고요~ 하지만~~ 만약 ... 로드하는 객체의

크기가 크다라면은 문제가 될소지는 있지만 .. 암튼 제가 보기에는 그건 아닌것 같구요~

다른쪽에서 문제가 있을수도 있으니~

이렇게 해보시지요~

//       Lee = new TLee();
:         MainForm->bm = new Graphics::TBitmap();
:         MainForm->bm->LoadFromFile("C:\\B"+IntToStr(temp)+".bmp");
//        Lee->LoadToClass(MainForm->bm);

이런식으로 .. 한쪽을 막아 보싶시요~


:         MainForm->bm = new Graphics::TBitmap();
:         MainForm->bm->LoadFromFile("C:\\B"+IntToStr(temp)+".bmp");

이것의 경우도 매번 new Graphics::TBitmap(); 이렇게 할당 하지 마식고

루프 전단에서 한번만 할당 해도 될거 같은되여~

MainForm->bm->LoadFromFile("C:\\B"+IntToStr(temp)+".bmp");

이 아마도 비트맵에 대한 메모리가 할당 되있으면 해제하고 다시 잡을 테니깐 ...

구지 new Graphics::TBitmap(); 를 매번 하지 않아도 될듯 ...

그럼 ./...









+ -

관련 글 리스트
10624 [질문] exception class EOutOfResources 수성 1392 2001/09/04
10625     Re:[질문] exception class EOutOfResources 최보현.U&I 2322 2001/09/04
10633         Re:Re:[질문] exception class EOutOfResources 수성 1532 2001/09/05
10643             Re:Re:Re:[질문] exception class EOutOfResources 최보현.U&I 1366 2001/09/05
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.