예외처리 (Exception Handling)
- 스택 되감기 (Stack unwinding)
- 기반 지식
- 프로그램 메모리(코드 메모리) : 코드를 보유하는 환경. 이 영역에는 다른 객체를 선언할 수 없음. 프로그램이 종료될 때 해제된다.
- 정적 메모리 : static 키워드를 사용해 정적 변수를 선언하면 정적 메모리에 올라간다. 전역객체와 정적객체를 보유하는 영역. 프로그램이 종료될 때 모든 객체를 정리하고 해제된다.
- 힙 메모리 : 런타임시점의 객체를 저장할 때 사용. Free 또는 동적 메모리라고도 부른다. new 키워드 사용.
- 스택 메모리 : 함수의 지역변수, 매개변수 등을 저장. last in first out. c++는 스택에 있는 객체만 이름을 가질 수 있기 때문에 스택 메모리 포인터를 이용해 힙 메모리에 생성된 주소를 받아서 컨트롤한다. -> 런타임에서 객체 생성하면 힙과 스택을 모두 사용
- 예외 처리는 스택 메모리 기반으로 동작한다.
[스택 메모리의 제약 사항]
1) 컴파일 시점에 객체 이름을 정의해야 한다. 이름이 없는 객체는 스택에 저장할 수 없음
2) 컴파일 시점에 객체 크기를 정해야 한다. -> 가변 형태 배열이 필요해서 배열 사이즈를 주지 않고 만들면 컴파일 에러 발생함. ex) int x;하고 double d[x]; (x사이즈가없음) -> 힙 영역에 생성(new 키워드)하고 그 주소를 스택 메모리의 포인터로 받아야 함
'기본 지식' 카테고리의 다른 글
논리 데이터 저장소 (0) | 2021.07.01 |
---|---|
화면 설계 (0) | 2021.07.01 |
요구사항 (0) | 2021.07.01 |
현행 시스템 분석 (0) | 2021.06.29 |
소프트웨어 개발방법론 (0) | 2021.06.29 |
댓글