스택 오버플로우(Stack overflow)란?

최현규·2024년 8월 22일

용어 정리

목록 보기
8/15

스택오버플로우란?

스택 오버플로우는 프로그램 실행 중 스택이라는 메모리 영역이 넘쳐버리는 상황을 의미합니다. 스택은 함수 호출 시 지역 변수나 리턴 주소 등을 저장하는 데 사용되며, 함수가 호출될 때마다 스택에 데이터가 쌓입니다. 그러나 스택에 할당된 메모리 공간이 제한적이므로, 너무 많은 함수 호출이나 재귀 호출이 발생하면 스택의 용량을 초과하여 스택 오버플로우가 발생할 수 있습니다.
예:재귀 함수가 종료 조건 없이 무한히 호출될 경우 스택 오버플로우가 발생할 수 있습니다.

예시(C언어)

void recursiveFunction() {
    recursiveFunction();  // 종료 조건 없이 자신을 계속 호출
}

int main() {
    recursiveFunction();  // 스택 오버플로우 발생
    return 0;
}

0개의 댓글