힙과 스택이란?

면접준비

힙과 스택이란?

썩은피망 2024. 6. 29. 02:23
반응형
스택 (Stack)

함수의 호출정보나 매개변수, 지역변수 등이 값 형태로 저장되는 LIFO 방식의 메모리 영역입니다. 빠른 속도와 사용 뒤에는 자동으로 해제하는 자동 메모리 특징을 갖습니다. 대신 크기를 미리 확정하고 사용하기 때문에 스택 오버플로우가 발생할 수 있습니다.

예시 ) 웹브라우저 뒤로가기

 

  • LIFO(Last In First Out)
    • 후입선출 방식으로 가장 마지막 주소에 입력하고 가장 최근에 입력한 요소를 출력하는 특징을 갖습니다. 예시로는 웹브라우저의 뒤로가기가 있습니다.
  • 스택 오버플로우
    • 스택 포인터가 스택의 경계를 초과할 때 발생하는 현상입니다. 이 경우의 예시는 재귀함수의 무한실행 등이 있습니다.

힙 (Heap)

사용자가 직접 관리하는 FIFO 방식의 메모리 영역입니다. C#의 경우 GC를 통해 메모리가 자동으로 관리됩니다. 스택보다 큰 메모리를 할당받기 위해 사용하지만 속도는 비교적 느립니다.

예시 ) 줄서기

  • FIFO(First In First Out)
    • 선입선출 방식으로 가장 앞 주소에 입력하고 입력된 순서대로 요소를 출력하는 특징을 갖습니다. 예시로는 줄서서 결제를 진행하는 경우가 있습니다.

위 내용은 어디까지나 개인 학습 중, 정리한 내용이기 때문에 잘못된 내용이 있을 수 있습니다.
부족한 설명이나 잘못된 내용에 대한 지적은 언제나 환영입니다.

 

반응형

'면접준비' 카테고리의 다른 글

코루틴이란?  (0) 2024.07.04
상수란?  (0) 2024.07.04
객체지향프로그래밍이란?  (0) 2024.06.27