개발자 블로그

재귀함수와 스택 메모리 본문

파이썬/알쓸신잡

재귀함수와 스택 메모리

hayongwoon 2022. 8. 16. 16:48

 함수가 호출되어 저장되어 사용되는 곳이 스택 메모리 영역이다. 재귀함수는 함수가 호출 되면서 함수 자기 자신을 또 다시 호출하는 방식으로 재귀함수 호출 시 스택 메모리에 호출 된 함수들이 계속 쌓이게 된다. 

 

 스택은 LIFO(선입선출) 구조이기 때문에 가장 마지막에 호출된 함수 factorial(1)를 먼저 완료하고, 값을 아래로 전달하여 최초로 호출된 함수 factorial(3)가 최종 값을 계산한다.

출처: naver connect 모두를 위한 컴퓨터 과학 자료

따라서, 재귀함수를 호출할 때 스택 메모리 공간이 초과되는 스택 오버플로우가 발생되는 오류를 주의하며, 과도한 스택 메모리가 사용되지 않도록 조심하며 사용해야한다.