Turbo-C
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
터보-C 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
Lua 게시판
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C/C++ Q/A
[2623] 해결 방법을 찾기가 힘들군요.
정찬호.라다 [rada] 971 읽음    2003-05-16 05:47
Sorted.h 656B sorted list의 헤더파일
sorted.cpp 3.1KB 실제 구현 파일입니다. 소멸자 부분이 주석 처리 되어 있습니다.
Airplane.cpp 476B 비행기 클래스
Person.cpp 535B 탑승객 클래스
test.txt 2.9KB 테스트 데이터. 소멸자의 주석을없애면 3번째 예약자부터 에러가 발생합니다
학교에서 과제로 비행기 예약 프로그램을 만들었습니다.

Linked List를 이용한 프로그램이었는데, 깜빡하고 소멸자를 코딩을 하지 않았을때는 모든 것이 잘 돌아가는 듯 싶었습니다.

하지만, 소멸자를 코딩한 뒤에는 잘못된 주소를 참조하였는지 간헐적으로 에러가 발생하는군요.

제가 생각하기에는 임시로 사용하려고 만들어주는 클래스(소스에서 TempAir와 같은..)가 생성될때, Deafult Constructor를 무시한뒤 작성되기 때문 인것 같습니다. 분명히 NULL포인터를 가져야 할 곳에서 NULL이 아닌 다른 주소를 가지게 되고, 소멸자에선 그 메모리 주소의 변수를 삭제하려 하는 도중에 발생하는 것입니다.

Linked List 안에 또 하나의 Linked List가 들어있기 때문인 것도 같은데, AirPlane속의 Linked List를 Pointer로 만들어보아도, 동적생성으로 바꾸어 보아도 비슷한 문제가 생기는 것을 보면 분명 문제는 소멸자 부분에 있는 듯 합니다.

분명히 Constructor에서 초기화가 되어져 있고, 다른 부분에서도 문제를 찾을 수 없는 것 같은데, 왜 이런 문제가 발생하는 지를 알고 싶습니다.

혹은 저의 Pointer사용법이 잘못되었는지, 잘못되었다면 어느 부분에서 잘못 되었는지 알고 싶습니다.

(무리한 부탁/질문 인줄은 알지만, 레포트는 소멸자가 없는 형태로 제출하려고 프린트도 해놨구요, 제가 아는 범위 안에서는 도저히 해결되지 않을 문제점이라서 이렇게 질문을 올립니다.
좋은 하루 되세요)



+ -

관련 글 리스트
2623 해결 방법을 찾기가 힘들군요. 정찬호.라다 971 2003/05/16
4061     Re:해결 방법을 찾기가 힘들군요. 임두순 1069 2003/05/16
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.