Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 적절한 스택 및 힙 사용?

<시간/>

스택 - 함수 내부에 선언된 모든 변수는 스택에서 메모리를 차지합니다. 따라서 함수 내부의 모든 지역 변수는 스택에 있습니다.

− 프로그램에서 사용하지 않는 메모리로 프로그램 실행 시 동적으로 메모리를 할당하는데 사용할 수 있습니다. 따라서 무언가를 선언한 함수보다 오래 유지하려면 힙에 할당해야 합니다.

예시

int main() {
   int a; //get memory allocated on stack.
   int *ptr=new int[7]; //memory for 7 integers allocated on heap.
}

힙 메모리의 주요 문제는 조각화이며 메모리 부족 문제는 스택에서 더 많이 나타납니다. 메모리 크기는 스택에서 변경할 수 없는 힙에서 변경할 수 있습니다.