일단 결론부터말하면 해제됨.
궁금하면 소멸자에다 "나뒤짐" 출력해서 확인해봐
스택이랑 힙 같은 메모리 영역에 대해서 알아봐
근데 메인함수 끝나면 new로 힙에다 올린것도 소멸자는 안불러오지만 메모리는 해제되지않음?? 이건 모르겠다. 고수가 답변좀 - dc App
익명(116.251)2022-08-28 07:29
답글
스택이랑 힙에 대해선 아는데 cpp는 첨이라 내가 예전에 하던건 클래스 생성하고 직접 소멸자 호출 안해주면 함수 끝나도 메모리 해제가 안대서 물어봄 - dc App
익명(183.103)2022-08-28 07:37
답글
예전에 하던건 뭐야?? - dc App
익명(116.251)2022-08-28 07:39
답글
델파이 ㅇㅅㅇ - dc App
익명(183.103)2022-08-28 07:40
답글
델파이 잘 모르는데. c++은 new 키워드 안쓰고 함수안에서 인스턴스 생성하면 스택에 할당됨. 델파이는 인스턴스는 힙에 할당되나보네. - dc App
익명(116.251)2022-08-28 07:56
스택에 올라가면 함수 종료시 소멸자 호출되고 메모리도 정리됨 - dc App
익명(118.235)2022-08-28 08:36
답글
만약 힙할당된걸 정리하고 싶으면 smartptr, uniqueptr 를 이용하는 RAII 패턴을 검색해보셈 - dc App
익명(118.235)2022-08-28 08:36
답글
힙에 할당한거 해제안하고 메인함수 종료되면 어떻게됨?? - dc App
익명(116.251)2022-08-28 08:38
답글
프로세스가 종료될태니 OS가 메모리를 회수하겠지 - dc App
익명(118.235)2022-08-28 08:38
fuck 객체에 대한 메모리는 해제됨 그러나 fuck 객체에 담긴 포인터 등이 동적할당된 메모리를 가리키고 있다면 그건 fuck 객체의 소멸자가 잘 처리해야됨 그거랑 별도로 프로세스가 종료되면 OS가 프로세스에 건네준 메모리를 회수함
익명(175.223)2022-08-28 08:51
왤케 다들 착함
익명(112.184)2022-08-28 10:21
스택: 스코프 밖으로 나갈 때 회수됨. 힙: delete로 지우거나 프로세스가 종료될 때 회수됨.
단 메모리가 회수되더라도 상황에 따라 소멸자가 호출되지는 않을 수 있음
익명(123.254)2022-08-28 11:23
답글
운체가 프로세스를 종료시키는 경우에는 소멸자가 호출되지 않음. 예를 들어 {fuck me;exit();} 와 같이 exit하면 블록 스코프를 나가기 전에 exit 시스템 콜을 호출해서, 운체가 프로세스를 정리하기 때문에 fuck의 소멸자는 호출되지 않음. 비슷하게 delete로 명시적으로 지우지 않고, 프로세스가 종료되며 회수되는 힙 영역의 객체들은 소멸자 호출 없이 그냥 사라짐
일단 결론부터말하면 해제됨. 궁금하면 소멸자에다 "나뒤짐" 출력해서 확인해봐 스택이랑 힙 같은 메모리 영역에 대해서 알아봐 근데 메인함수 끝나면 new로 힙에다 올린것도 소멸자는 안불러오지만 메모리는 해제되지않음?? 이건 모르겠다. 고수가 답변좀 - dc App
스택이랑 힙에 대해선 아는데 cpp는 첨이라 내가 예전에 하던건 클래스 생성하고 직접 소멸자 호출 안해주면 함수 끝나도 메모리 해제가 안대서 물어봄 - dc App
예전에 하던건 뭐야?? - dc App
델파이 ㅇㅅㅇ - dc App
델파이 잘 모르는데. c++은 new 키워드 안쓰고 함수안에서 인스턴스 생성하면 스택에 할당됨. 델파이는 인스턴스는 힙에 할당되나보네. - dc App
스택에 올라가면 함수 종료시 소멸자 호출되고 메모리도 정리됨 - dc App
만약 힙할당된걸 정리하고 싶으면 smartptr, uniqueptr 를 이용하는 RAII 패턴을 검색해보셈 - dc App
힙에 할당한거 해제안하고 메인함수 종료되면 어떻게됨?? - dc App
프로세스가 종료될태니 OS가 메모리를 회수하겠지 - dc App
fuck 객체에 대한 메모리는 해제됨 그러나 fuck 객체에 담긴 포인터 등이 동적할당된 메모리를 가리키고 있다면 그건 fuck 객체의 소멸자가 잘 처리해야됨 그거랑 별도로 프로세스가 종료되면 OS가 프로세스에 건네준 메모리를 회수함
왤케 다들 착함
스택: 스코프 밖으로 나갈 때 회수됨. 힙: delete로 지우거나 프로세스가 종료될 때 회수됨. 단 메모리가 회수되더라도 상황에 따라 소멸자가 호출되지는 않을 수 있음
운체가 프로세스를 종료시키는 경우에는 소멸자가 호출되지 않음. 예를 들어 {fuck me;exit();} 와 같이 exit하면 블록 스코프를 나가기 전에 exit 시스템 콜을 호출해서, 운체가 프로세스를 정리하기 때문에 fuck의 소멸자는 호출되지 않음. 비슷하게 delete로 명시적으로 지우지 않고, 프로세스가 종료되며 회수되는 힙 영역의 객체들은 소멸자 호출 없이 그냥 사라짐
질문이 어째 "건물을 터뜨리면 건물 안의 춘식이가 담궈지냐?" 같아
delete me ㅋㅋ