-
메모리 영역 (code, data, bss, heap, stack)Develpment/C 2020. 9. 13. 21:24
1. 메모리 영역
주소
영역
내용
메모리 할당 시기
0x0000
(Low Address)
code(text)
* 코드, 함수, 제어문 등 실행할 프로그램의 코드가 저장되는 영역
* Compile Time Memory 할당
* 크기 고정
data
data
* 초기값이 있는 전역변수, static 변수, 정적 배열, 정적 구조체 등 저장
bss
(Block Started by Symbel)
* 전역으로 선언된 초기화 되지 않은 데이터 영역
heap
* 동적 할당 객체에 대한 영역
* High Address 방향으로 추가 할당
* Run Time Memory 할당
* 가변적 크기
자유영역
* Heap Overflow : heap 영역이 증가하여 stack 영역을 침범
* Stack Overflow : stack 영역이 증가하여 heap 영역을 침범
0xFFFF
(High Address)
stack
* 지역변수, 매개변수, 리턴 값 등 임시로 사용하는 것들에 대한 영역
* 매개 변수와 리턴값은 함수 호출 시 생성, 함수 수행 종료시 반환
* Low Address 방향으로 추가 할당
2. 속도
Stack > Data > Code > Heap
'Develpment > C' 카테고리의 다른 글
printf 와 scanf 함수에 대한 고찰 (0) 2020.09.13 상수와 기본 자료형 (0) 2020.09.13 데이터 표현 방식의 이해 (0) 2020.09.13 변수 (0) 2020.09.13