변수가 지정되면 계속 그위에 덧붙여 저장되는거 아닌가요?
왜 재귀함수를 하면 메모리를 많이 잡아먹나요?
매번 실행될때마다 새로운 주소에 저장되는 건가요?
재귀함수의 호출은 일반 함수의 호출과 다를 게 없습니다. a라는 함수가 26번 재귀호출되는 것과, a가 b를 호출하고 b가 c를 호출하고 c가 d를 호출하고... y가 z를 호출하는 것은 똑같이 26의 함수 호출 깊이가 만들어집니다. 각 함수 호출에서 만들어지는 변수들은 스택 영역에 차곡차곡 쌓이고, 리턴을 하기 전까지 유지됩니다.
그러면 재귀함수를 써서 메모리가 초과가 된경우에는 재귀함수중에 제대로 리턴이 되지 않은 부분이 있어서(무한 재귀함수) 스택 영역이 꽉차서 메모리초과가 나는 것인가요??
그랬을 가능성도 있습니다.
알겠습니다! 조언 감사합니다
댓글을 작성하려면 로그인해야 합니다.
andymon 3년 전
변수가 지정되면 계속 그위에 덧붙여 저장되는거 아닌가요?
왜 재귀함수를 하면 메모리를 많이 잡아먹나요?
매번 실행될때마다 새로운 주소에 저장되는 건가요?