내 C++ main
함수에서 예를 들어, 스택 메모리 대신 힙 메모리를 사용하는 변수에 대한 포인터가있는 경우 - 응용 프로그램이 종료 된 후 자동으로 할당이 해제됩니까? 나는 그렇게 생각할 것이다.어쨌든 프로그램이 종료 될 때 C++에서 delete를 호출 할 이유가 있습니까?
그래도 종료시 메모리가 자동으로 할당 해제되는 상황에서 절대로 사용되지 않는다고 생각하더라도 항상 힙 할당을 삭제하는 것이 좋습니다.
예를 들어이 작업을 수행하는 데있어 중요한 점이 있습니까?
int main(...)
{
A* a = new A();
a->DoSomething();
delete a;
return 0;
}
나는 경우 어쩌면을 생각 나는 리팩토링 (또는 다른 사람 refactors) 그 코드와 delete
정말 neccecary하는 응용 프로그램에 다른 곳을 넣습니다.
Brian R. Bondy (C++의 의미를 구체적으로 설명 함)의 답변뿐만 아니라 Paul Tomblin도 good answer to a C specific question을 가지고 있으며 C++ 소멸자에 대해서도 설명합니다.
언급 된 복제본은 약 C로, C++에서 문제가되는 소멸자에 대한 중요한 정보가 누락되어 있습니다. –
@Brian, 복제본에 대한 나의 대답도 소멸자를 언급합니다 (현재). 이 느낌을 삭제해야한다는 느낌이 여전히 남아 있습니다. –
소멸자에 대해 무슨 뜻인지 확실하지 않으므로 말씀해주십시오. –