대부분의 운영체제들은 프로그램 종료시 알아서 회수해 줍니다.
직접 확인해보는 것도 어렵지 않으실 겁니다.
(윈도 9x 커널은 안 되는 것으로 알고 있는데, 확실하진 않네요.)
하지만 예제 같이 한 번 짧게 돌려보는 프로그램이 아닌 이상, 해제를 해주는 것이 "좋은 습관"입니다.
예를 들어, 프로그램 종료 직전에는 일부러 동적 메모리를 해제할 필요 없을 것 같지만,
후에 코드를 수정하고 재배치 하다 보면 일일이 할당과 해제를 확인해야 할 수도 있겠죠...
더 자세한 것은 다른 분들이 잘 설명해 주실거라 믿습니다. (;;)
2007.07.24 17:29:27 (*.140.54.128)
히스
지금 테스트를 해봤어요..
맞는 테스트인지는 모르지만..
아무래도 프로세스가 종료될때 프로세스에게 할당받은 메모리가 운영체제로 돌아가는 듯 한데..
그래서
int* a = new int[10000000];
Sleep(5000);
해준디
작업관리자에 성능탭에서 pf 사용양을 봤죠
실행시키면 메모리 양이 늘어날테고..
종료하면.. 해제가 되면 메모리 양이 줄어들테고
안되면 줄어들지 않겠쬬
해봣더니 줄어들었습니다
해제 된거라 봐도 되겠죠.?
2007.07.24 17:37:44 (*.215.56.194)
루인
OS 단에서 회수 합니다 ^^
2007.07.24 18:42:28 (*.232.96.120)
랩하는좀비
Garbage Collector!!!
2007.07.25 00:13:25 (*.75.207.216)
윤원영
bitmap 같은거 해제 안해주는 것도 있습니다.
DX의 서페이스 같은것도 릴리즈 하지 않으면
해제 해주지 않는 걸로 알고 있는데 프로세스간의 공용으로 쓸 가능성이 있어서 그러는지
확시 모르니 확인해 보세요
2007.07.25 00:50:52 (*.201.226.106)
1ststory
위 답변은 모두 Window또는 리눅스 같은 대형 OS 전용 답변이네요. dll을 통한 할당도 대형 OS에서는 해주지 않는것으로 알고 있습니다.
하지만, 메모리 해제는 OS마다 다릅니다. 무엇보다 OS에서 해주냐 안해주냐를 떠나서 프로그램이 할당한 메모리는 OS에서 해주길 바라는 것보다 무조건 책임지고 해지를 시켜줘야 합니다.
특히나 임베디드나 소형 OS에서는 해주지 않는 OS들도 꽤나 됩니다.