상세 컨텐츠

본문 제목

[자료구조] 스택 (Stack)

Data Structure

by choiDev 2020. 11. 5. 01:40

본문

스택의 구조

Stack 구조

 

스택 용어

LIFO (Last In First Out) 후입선출
Top or Stack Pointer 스택의 가장 상단에 위치
Bottom 스택의 가장 하단
Push / Pop 데이터 (입력 / 출력)
Clear/Empty 데이터 (삭제 / 비었는지 확인)
Full 데이터가 가득 찼는지 확인
Size 스택의 크기

 

스택의 용도

  1. 임시 데이터 백업 (재귀함수 or 웹 방문기록)


임시 데이터 백업 예시


2. 시스템 스택 (지역변수 저장, 함수 매개변수 호출)


지역변수 저장 예시


4. OS에서 필요할 때 사용
   "스택 메모리 영역"에서 추가된 메모리는 Library 방향으로 할당되게 된다.
   따라서 스택에서 아무리 메모리가 할당되어도
   커널의 영역은 침범하지 않기에 OS가 다운되는등의 치명적의 에러는 방지 할 수 있다.

 

 

스택의 단점 

 1. 스택은 프로그램마다 크기를 고정하여 할당되기에 이를 다 사용하면 넘치게 된다.
    그로인해 발생하는 Stack Buffer Overflow는 프로그램 강제 종료를 발생하기에 치명적이다.

관련글 더보기