소스는 캡쳐 화면과 같습니다.
텍스트로 옮겨 보면 아래와 같습니다.
C++클래스를 배열로 만들어서 List를 구현하는 자료구조 숙제중입니다.
생성자와 파괴자 부분에서 뭔가 오류를 범하고 있는 것 같은데
컴파일에선 오류 없다고 하는데 실행할 때 오류가 뜹니다 ㅠㅠ
파괴자에서 오류가 나는 것 같습니다.
제가 무엇을 잘못한 것인지요.
힌트라도 ..부탁드립니다. (__)
덧붙임)
같은 기능을 하는 소스를 C 의 구조체와 malloc으로 구현하는데에는 성공하였습니다.
/******************************
//Init.함수 정의
//각 메모리공간을 동적할당하고, name, tel, email을 null값으로 초기화한다.
void Init(PageType* CPtr){
int i;
CPtr->Count=0;
for(i=0; i<=MAX-1; i++){
CPtr->List[i] = (ChapterType*)malloc(MAX*sizeof(ChapterType));
CPtr->List[i]->name = (char*)malloc(CHARLEN*sizeof(char));
CPtr->List[i]->tel = (char*)malloc(CHARLEN*sizeof(char));
CPtr->List[i]->email = (char*)malloc(CHARLEN*sizeof(char));
CPtr->List[i]->name = NULL;
CPtr->List[i]->tel = NULL;
CPtr->List[i]->email = NULL;
}
}
//동적할당 된 List[i]변수들을 모두 해제시키고 NULL값을 입력.
void Free(PageType* CPtr){
int i;
for(i=0; i<=MAX-1; i++){
free(CPtr->List[i]);
CPtr->List[i] = NULL;
}
}
******************************/
캡쳐한 C++소스코드의 text버전.
/***************************************************************
//클래스 정의
class Chapter{
public:
char* name;
char* tel;
char* email;
//맴버함수 선언
Chapter();
~Chapter();
private:
int Count;
//맴버함수로 Chapter*형을 포함시켜, 재귀적 클래스를 만든다.
Chapter* List[MAX];
};
//각 메모리공간을 동적할당하고, name, tel, email을 null값으로 초기화한다.
Chapter::Chapter(){
int i;
this->Count=0;
for(i=0; i<=MAX-1; i++){
this->List[i] = new Chapter[0];
this->List[i]->name = new char;
this->List[i]->tel = new char;
this->List[i]->email = new char;
this->List[i]->name = NULL;
this->List[i]->tel = NULL;
this->List[i]->email = NULL;
}
}
//동적할당 된 List[i]변수들을 모두 해제시키고 NULL값을 입력.
Chapter::~Chapter(){
int i;
for(i=0; i<=MAX-1; i++){
cout << "파괴자" << i << endl;
delete[] (this->List[i]);
this->List[i] = NULL;
}
}
***************************************************************/
댓글 영역
획득법
① NFT 발행
작성한 게시물을 NFT로 발행하면 일주일 동안 사용할 수 있습니다. (최초 1회)
② NFT 구매
다른 이용자의 NFT를 구매하면 한 달 동안 사용할 수 있습니다. (구매 시마다 갱신)
사용법
디시콘에서지갑연결시 바로 사용 가능합니다.