C++에서 프로세스가 종료되면 동적할당한 메모리들이 모두 자동 해제 되나요?

somet2001의 이미지

안녕하세요.
제가 코딩하고 테스트를 하다가
일반적인 경우에는 동적할당한 것들 해제가 잘 되던데요
프로세스를 강제종료 한 경우에는 메모리 해제 코드가 실행되기 전에 프로세스가 종료되어버립니다.
그래서 동적할당이 된 후 해제하는 코드가 실행되지 못하구요.

듣기로는 OS마다 자동으로 프로세스 종료시 메모리를 해제해 주는 OS가 있고 아닌것이 있다고 하는데요
OS상에서 이 기능을 지원해주지 않는다면
프로그램이 강제종료 되어 메모리할당 해제 코드가 실행되지 못했을 경우
시스템을 종료할 때 까지 메모리가 잡혀있는 상태가 되는건가요?

--------------------------------------------------------------------------
C++에서 프로세스가 종료되면 동적할당한 메모리들이 모두 자동 해제 되나요?

kukyakya의 이미지

네. 자동으로 해제됩니다.

익명 사용자의 이미지

질문자분이 아시는 모든 운영체제는 알아서 해제합니다. "해제" 라고 불러야 할지 모르겠지만.

mirheekl의 이미지

OS가 관장하지 않는 자원을 사용할 경우 (예:직접 구현한 원격 서버에서 제공하는 자원을 사용할 경우) 강제종료에 대비한 별도의 처리를 해주어야 합니다.

--

somet2001의 이미지

감사합니다~