ast라는 구조체 타입이 있고, ccla라는 클래스 타입이 있습니다. ccla에는 문자형 포인터가 있고요. 그리고 ast 안에 ccla로 선언된 obj가 존재합니다. 그리고
ast* head;
라고 전역에서 선언했습니다. 그리고 특정 함수에서 head에 동적할당을 다음의 방식으로 합니다.
void set(ccla ft) {
head=new ast;
head->obj=ft;
}
이 때 head->obj 라는 객체는 언제 소멸할까요?
첫번째, head가 전역이니, 프로그램이 종료될 때,
두번째, head에 동적으로 할당하는 함수가 반환주소로 돌아온 직후
세번째, delete로 hed를 지울 때
그리고 head->obj의 동적으로 할당된 문자형 포인터가 가리키는 메모리는 언제 해제되나요?