C,C++

메모리 영역(Heap, Stack, Data, Code)

Dongjun_ 2019. 1. 23. 13:48

주기억장치(RAM) 에는 크게 Heap, Stack, Data, Code 로 사용하는 영역(Segment)이 있다.

( BSS 영역도 있다는데 나중에 알아보자. )

 

각 데이터 영역은 함수, 변수, 상수 등의 시작 주소값을 가진다.

ex) main 함수의 주소값 : 08048400

 

- Heap

malloc(Memory Allocation), new 등으로 동적 메모리를 선언할 때 할당되는 영역

- Stack

지역변수(local), 매개변수(파라미터, parameter), 리턴(return) 등 임시로 사용할 메모리를 선언할 때 할당되는 영역

- Data

전역변수(global), 정적변수(static), 배열(array), 구조체(structure) 등 프로그램 실행과 동시에 선언할 때 할당되는 영역

- Code

함수, 제어문, 상수 등 함수들을 선언할 때 할당되는 영역

 

- 요약 -

Heap : 동적할당에 사용

Stack : 정적할당 등에 사용

Data : 프로그램 시작과 종료시까지 사용

Code : 코드내용 활용에 사용

 

참조 : https://donghwada.tistory.com/entry/%EB%A9%94%EB%AA%A8%EB%A6%AC-%EC%98%81%EC%97%AD-Code-Data-BSS-HEAP-Stack-Little-Endian-Stack%EC%9D%98-%EC%9D%B4%ED%95%B4

반응형

'C,C++' 카테고리의 다른 글

[C++]warning C4482 : 비표준 확장 에 대해서  (0) 2019.01.31
[C++]type casting에 관하여  (0) 2019.01.31
Segment 란  (0) 2019.01.23
동적(Dynamic) vs 정적(Static)  (0) 2019.01.22
싱글바이트, 멀티바이트, 유니코드  (0) 2019.01.22