cpp 의 delete 에 대해서 궁금한게 있는데요 답변 부탁 드립니다.
1. 포인터 변수를 선언 하고 new 를 통해 메모리 할당을 받고나서 delete 를 하지 않으면 해당 함수가 끝난 뒤에도 할단된 메모리가 유지된다고 알고 있습니다.
그럼 main 함수가 끝나도, 즉 프로그램이 끝나도 delete 를 하지 않았을 경우 그 할당받은 메모리가 계속 사용 되고 있나요??
2. 이건 gdb 를 통해 디버깅 중이였는데요.
class 안에 포인터 변수를 여러개를 사용하였고, 그 class 또한 포인터변수로 사용하여 new 를 통해 메모리를 할당 받았습니다.
그 후 그 class 포인터 변수를 delete 하였는데요, gdb 상에 class 포인터가 남아있더라구요, 물론 그 클래스 내부의 일반 변수들은 delete 가 된걸로 보이는데,
class 내의 포인터 변수들은 살아있는것 같았습니다.
왜 delete 를 해도 포인터 변수들은 NULL 이 되지 않는거죠??
그럼 delete 이후에 NULL 을 할당해줘야 하는건가요??
만약 NULL 을 할당해줘야 한다면 그 class 내의 포인터변수들은 사라지는건가요??
말주변이 없어서 궁금한대로 적었습니다... 질문 이해가 안되시면 댓글로 말씀해주세요
답변 부탁 드립니다.