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
[9499] Re:[질문] 메모리 해제에 대해서 좀 가르쳐주세요... <- 약간의 부연 설명입니다...
김민호 [xho95] 1301 읽음    2001-08-01 07:01
안녕하세요...

음... 밑에서 많은 분들이 답변을 하셨는데... 전... 같이 공부하는 입장에서 조금만 더 덧붙이도록 합니다...

free() 와 delete 는 조금 다른데, free() 의 경우는 C 에서 비롯된 하나의 함수이고, delete 는 C++ 에서 추가된 연산자 입니다. 근본적인 차이는 new 와 delete 는 객체와 같이 작업한다는 점입니다. malloc()이나 free()는 객체에 대해서는 전혀 모르죠...

그래서, new 와 delete 는 메모리를 할당하고, 해제하는 역할 외에 또다른 역할이 있습니다. 그것은 각각 해당 객체의 생성자와 소멸자를 호출하는 것입니다. new 로 할당한 객체는 new 에 의해 생성자가 실행되고, delete 에 의해 소멸자가 실행됩니다.

실제로 int, char 포인터의 메모리를 할당하는 경우, malloc() ~ free()를 써도 되고, new ~ delete를 써도 되지만, 우리가 만들어준 하나의 클래스형에 대해서는 new ~ delete 를 쓸 수 밖에 없습니다. 클래스형의 메모리를 할당할 때, malloc()을 사용하는 경우를 본 일이 있습니까? 그러니 malloc() ~ free()는 대부분의 C++ 책에서 쓰지말라는 식으로 나옵니다.

다른 부분에 대한 내용은... 특별히 드릴 말씀은 없군요...

다만... 서브폼에서 메모리 할당, 해제에 문제가 있는데, 메인폼에서도 영향을 받는다는 것은... (실제로 서브폼 안에서만 사용한 포인터 변수일 때, 메모리 해제를 안 해줘도 메모리가 크지 않으면 큰 문제가 없거든요...) 아마도 서브폼과 메인폼을 오가는 포인터 변수가 있지 않을까 생각이 되는데요...

그러니까.. 메인폼에서 할당된 포인터 변수를 서브폼에 전달해서 사용하는 것이 아닌가요...? 만약, 메인폼에서 할당된 포인터 변수를 서브폼에 인자로 전달했는데, 서브폼 안에서 메모리를 해제해 버립니다... 그런 후에 메인폼에서 인자로 넘겨준 포인터 변수를 또다시 메모리를 해제 하려 한다든가... (이러면 안되죠...)

서브폼에서 지역 변수로 만들어준 포인터 변수를 리턴값으로 넘겨주려 한다든가... 뭐... 에궁... 한계점입니다... 열심히 하시기 바랍니다...^^

그럼... 즐넷하세요...

Jun 님이 쓰신 글 :
: 안녕하세요...
: 메모리 문제때문에 많이 힘들어하고 있습니다.
:
: 메모리해제에 대해서 궁금한데요..
:
: 1.
: TControl이나 TRec형같은 것으로 잡은 것은 메모리 해제를 해주어야 하는지요..
: 가령 TRec *rec라고 선언을 해주었을 때 이런 경우도 메모리 해제를 해주어야 하나요?
: 해주어야 한다면 어떤 식으로 해주어야 하는 건지 알고 싶습니다...
:
: 2.
: 그리고 한 프로젝트 내에서 서브폼에 메모리가 꼬여있으면 메인폼에도 영향을 주는 건가요?
:
: 3.
: free(변수명), delete(변수명)의 차이점을 알고 싶습니다.
:
: 메모리가 꼬였을 때의 충고 부탁드리겠습니다.
:
:
:

+ -

관련 글 리스트
9490 [질문] 메모리 해제에 대해서 좀 가르쳐주세요... Jun 908 2001/07/31
9499     Re:[질문] 메모리 해제에 대해서 좀 가르쳐주세요... <- 약간의 부연 설명입니다... 김민호 1301 2001/08/01
9496     Re:[질문] 메모리 해제에 대해서 좀 가르쳐주세요... 허재팔 944 2001/07/31
9493     Re:[질문] 메모리 해제에 대해서 좀 가르쳐주세요... 개박살 982 2001/07/31
9491     Re:[질문] 메모리 해제에 대해서 좀 가르쳐주세요... 조성택 927 2001/07/31
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.