C++ 프로그램에서 메모리를 절약하려고하는데 Perl처럼 블록을 변수의 범위로 사용할 수 있는지 알고 싶습니다.블록을 사용하여 C++에서 변수 범위를 관리 할 수 있습니까?
InputType input;
ResultType result;
{
// Block of code
MyHugeObject mho;
result = mho.superHeavyProcessing();
}
/*
My other code ...
*/
내가 블록을 종료 할 때 개체가 소멸 될 것으로 예상 할 수있다 : 수행이 의미 할 수 있습니다,이 전 몇 가지 계산을 수행하고 결과를 제공하는 거대한 객체가 있다고 가정 해 봅시다?
엄밀히 말하면, 소멸자 호출은 객체 저장에 사용 된 메모리를 해제하는 것과 동일하지 않습니다. – Constantin
질문에 * 거대한 * 단어가 있다고 가정하는 것이 안전하다고 생각합니다. 개체가 힙에 더 많은 메모리 덩어리를 할당하고 해방되기를 원한다는 것을 의미합니다 (예 : 벡터). –
미안하지만, 명시 적 malloc을 수행하지 않는 한 MyHugeObject가 스택에 할당되고 힙에는 할당되지 않는다고 생각됩니다. 내가 틀렸다면 나를 바로 잡아주세요. – 0fnt