재귀와 메모리

응큼한포도·2023년 11월 28일
0

코딩테스트

목록 보기
18/31

재귀와 스택 메모리

용도: 함수 호출 및 지역 변수의 저장에 사용된다.

작동 방식: 함수가 호출될 때마다 스택 메모리에 호출에 필요한 데이터와 지역 변수가 저장된다. 각 함수의 호출은 스택 프레임으로 표현되며, 함수가 실행 종료되면 해당 프레임이 스택에서 제거된다.

재귀 호출과의 관계: 재귀 함수 호출 시 매 호출마다 스택에 새로운 프레임이 추가되고, 함수가 반환될 때 해당 프레임이 스택에서 제거된다.

힙 메모리

용도: 동적으로 할당되는 데이터(객체, 배열 등)가 저장된다.

작동 방식: 프로그램 실행 중에 개발자가 필요에 따라 메모리를 동적으로 할당하고 해제한다. 이러한 할당은 개발자의 조작에 의해 이루어지며, 사용 후 메모리를 해제해야 한다. 일반적으로, 재귀 호출에서 동적 할당된 데이터(예: 배열)는 힙 메모리에 저장된다.

재귀와 오버플로우

재귀함수가 호출될 때 마다 스택에 새로운 프레임을 추가하고 각 호출에 필요한 메모리가 스택에 쌓인다. 만약에 재귀의 호출 횟수가 많아지면 스택 메모리에 점점 프레임이 쌓이게 되고 힙 메모리 영역도 동적 데이터가 쌓인다.
스택 메모리와 스택 메모리가 겹쳐버리게 되면 오버플로우가 발생하여 에러가 나게된다.

profile
미친 취준생

0개의 댓글