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
[71937] Re:생성에 삭제 질문좀 들리게요
빌더초보 [starwagon] 3185 읽음    2014-10-30 11:01
질문1.

ServerStart() 함수에 ServerEnd()가 있기 때문에 두번 생성 될 수가 없을텐데요?
아마 생성이 두번 된 것 처럼 동작 한다고 착각 하는 다른 뭔가가 있는 것 같네요.

그래도 확인 하고 싶다면,

FHost_ps 변수 자체로는 중복 생성인지 아닌 확인 할 수 없을 거고,

int CreateCount=0;
int DestroyCount=0;

이렇게 전역 변수를 두고, TFHost_ps의 생성자에
CreateCount++;

소멸자에
DestroyCount++;

를 넣어서 테스트 해보는 방법도 괜찮을 것 같습니다.



질문2.

생성시점에 포인터를 구분해 놓지 않는 이상
같은 변수에 중복 생성된 놈들은 모두 삭제 불가능한걸로 알고 있습니다.
그래서 질문자께서 사용한 방법 같이 생성 직전에 소멸하고 포인터를 초기화 하는 거죠.

친구 님이 쓰신 글 :
: 소켓 통신할때 보통
: 아래 처럼 사용하는데요
:
: void __fastcall TForm::ServerStart()
: {
:         ServerEnd();
:         FHost_ps = new TFHost_ps(ClientSocket);
:         ClientSocket->Active = true;
: }
: void __fastcall TForm::ServerEnd()
: {
:     if(ClientSocket->Active) ClientSocket->Active = false;
:     if(FHost_ps)
:     {
:         delete FHost_ps;
:         FHost_ps = NULL;
:     }
: }
:
: 가끔 이상하게 생성이 2번 된것처럼 동작 하는것 같아서요
:
: 만약
:         FHost_ps = new TFHost_ps(ClientSocket);
:         FHost_ps = new TFHost_ps(ClientSocket);
: 이렇게 그냥 2번 했을 경우
:
: 질문1.
:  2개가 생성됬는지 어떻게 확인 할수 있어요??
:
: 질문2.
:  2개다 delete 하고 싶은데 어떻게 하죠?
:
:
:
:

+ -

관련 글 리스트
71936 생성에 삭제 질문좀 들리게요 친구 3181 2014/10/30
71938     Re:생성에 삭제 질문좀 들리게요 이벤트 3215 2014/10/30
71937     Re:생성에 삭제 질문좀 들리게요 빌더초보 3185 2014/10/30
71939         Re:Re:생성에 삭제 질문좀 들리게요 친구 3326 2014/10/30
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.