리루
[C언어] 메모리 영억 본문
Code Segment
Data Segment
Stack
Heap
[메모리 구조]
입력 매개변수
리턴값
임시기억장소
상태정보저장
출력 매개변수
[활성 레코드의 메모리 구조]
- 코드 영역에는 프로그램이 실행될 때 수행되는 기계어가 들어간다.
- 정적 자료 영역에는 전역변수와 static local variable 같이 프로그램이 실행되는 동안 항상 존재하는 자료가 들어간다.
- 힙은 malloc 함수를 통해 할당되는 메모리처럼 동적으로 할당되는 메모리 공간이다.
- 스택에는 함수 호출 관련 정보가 들어간다.
- 관례상 합 영역은 프로그램 메모리의 한쪼 끝에서 위로 커져가고, 스택은 반대로 끝에서 아래로 커져간다.
- C 프로그램에서 함수가 호출될 때 호출과 관련된 정보를 보존하기 위해 스택에서 메모리 블록을 할당 받는다.
- 각 호출은 활성(activation)이라고도 불려진다. 스택에 할당되는 메모리 블록은 활성 레코드 또는 스텍 프레임으로 불려진다.
- 입력 매개변수는 호출에 전달되는 매개변수이다.
- 출력 매개변수는 호출 내부에서 함수를 호출할 때 전달하는 매개변수이다.
- 한 호출의 출력 배개변수는 스택의 다음에 위치하는 호출의 입력 매개변수가 된다.
- 활성 레코드는 호출이 종료될 때까지 스택에 남아있게 된다.
'# Algorithm' 카테고리의 다른 글
[자료구조] 해시 테이블 (0) | 2017.01.15 |
---|---|
[자료구조] 집합(set) (0) | 2017.01.12 |
[C언어] 재귀 (0) | 2017.01.05 |
[C언어]포인터 (0) | 2017.01.04 |
자료구조 & 소프트웨어 공학 소개 (0) | 2017.01.03 |