728x90
프로그램 실행 시 할당되는 메모리 영역은 Code, Data, Stack, Heap, 네 가지로 분류할 수 있는데, 이에 대한 이해가 아예 없는 상태에서도 자연스럽게 Stack, Heap에 대한 감이 잡히게 된다. 확실히 이들에 대해서 조금 정리해두는 것이 좋을 것 같아 글을 끄적여 놓는다.
Code
작성한 코드라고 보면 되며 프로그램 종료 시점까지 메모리에 적재됨.
Data
전역 변수, static 변수 등이 저장되는 영역으로 이 역시 프로그램 종료 시점까지 메모리에 적재됨.
Stack
자료구조를 접한 사람들이 아는 그 스택의 성격(LIFO)을 가지고 있음.
함수 호출, 지역 변수, 매개 변수, 반환 값 등을 저장하며, 함수 종료 시점에 시스템에 반환됨.
프로그램에서 사용하는 임시 메모리 영역으로, 컴파일 시점에 크기 결정.
Heap
동적 할당한 메모리가 저장되는 영역으로, 프로그래머가 직접 할당하고 해제하는 메모리가 이에 위치함.
C에서는 malloc/realloc/free 등으로 관리, C++에서는 new/delete로 관리가 가능함.
런타임에 할당 메모리 크기를 결정하면 이 영역을 사용하게 됨.
728x90
'Programming Language > C,C++' 카테고리의 다른 글
C,C++] Visual Studio와 컴파일러 (0) | 2018.02.18 |
---|---|
C++] 공백을 포함하는 문자열 여러 줄 입력 받기 (0) | 2018.02.12 |
C,C++] malloc과 new의 차이점 (0) | 2018.02.10 |
C++ STL list의 기본적인 사용법 정리 (0) | 2017.12.30 |
C++에서 문자열을 숫자로, 숫자를 문자열로 (0) | 2017.12.09 |