Data, Stack 과 Heap
# Computer Science

Data, Stack 과 Heap

Stack 과 Heap

 

 

출처 : http://blog.naver.com/xisaturn/220645637384

 

 

Code

- 작성한 소스 코드가 들어간다.
- 상수, 컴파일 된 기계어
- 프로그램이 끝날 때까지 메모리에 계속 적재.

 

Data

- 전역 변수와 static 변수가 할당되는 영역

- 프로그램의 시작과 동시에 할당되고, 프로그램이 종료되어야 메모리에서 소멸됨

- 전역 변수는 프로그램 실행 시, main 함수가 호출되기 전에 데이터 영역에 할당

 

Stack


- 함수 호출 시 생성되는 지역 변수와 매개 변수가 저장되는 영역

- 함수 호출이 완료되면 사라짐

- 프로그램이 자동으로 사용하는 임시 메모리 영역

- 컴파일 시에 크기가 결정된다.

 

 

Heap

- 필요에 의해 동적으로 메모리를 할당 할 때 사용

malloc() 또는 new 연산자를 통해 할당

free() 또는 delete 연산자를 통해서만 해제가 가능

- 런타임 시에 크기가 결정

Stack 영역이 크면 클 수록 Heap 영역이 작아지고, Heap 영역이 크면 클 수록 Stack 영역이 작아진다.

 

 

 

 

힙 영역 : 할당해야 할 메모리의 크기를 프로그램이 실행되는 동안 결정해야 하는 경우(런 타임때)

유용하게 사용되는 공간

ex) 배열의 길이를 사용자가 직접 정하고 싶을 경우

 

참고 : dsnight.tistory.com/50

 

 

 

 

728x90

'# Computer Science' 카테고리의 다른 글

[CS] 기술면접 정리  (0) 2021.11.04
Call by Value 와 Call by Reference  (0) 2021.09.29