Stack overflow

Pika (토론 | 기여)님의 2022년 2월 16일 (수) 22:00 판
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)

스택 오버플로(Stack overflow)는 메모리 오류의 일종이다.

자료구조의 한 종류인 스택에서 원래 할당된 메모리 공간보다 많은 데이터가 들어갈 경우 이를 받아들지 못하고 오류가 발생하는 것을 의미한다. 이를 구현하기 위한 가장 간단한 방법은 함수가 자기 자신을 부르는 재귀함수다.

method that recursion recursion() { return recursion() }

end method
의사 코드로 작성된 Java 기반 재귀함수 예시

이런 식으로 자기 자신을 부를 경우 스택의 크기는 정해져 있으나 양이 늘어나면서 스택의 크기를 넘어서는 경우가 있는데, 이때 스택 오버플로 에러를 내면서 프로그램이 맛이 간다.

값을 더하니 갑자기 음수가 되거나 하는 버퍼 오버플로와는 다른 개념이다.

각주