23-09-30 스택 메모리와 프레임

정채운·2023년 9월 30일
0
post-thumbnail

함수들이 스택에 쌓이게 될 때 여러 지역변수와 매게변수에 대한 정보, 호출한 함수가 끝나고 돌아올 주소에 대한 정보를 갖고 스택 프레임이 만들어 지게 됩니다.

그리고 해당 함수가 종료되면 해당 지역 변수들이 프레임에서 제거가 됩니다.

예를들어

int result;

int Add(int a, int b)
{
	int c = a + b;
    return c;
}
 
void main()
{
	int a = 10;
    int b = 5;
    
	result = Add(a, b);
 	
    cout << result;
}

main함수의 스택 프레임에서는 지역변수 a, b / Add란 함수에 대한 매게변수의 정보,
그리고 다시 main함수로 돌아가기 위한 반환주소로 스택 프레임이 형성 됩니다.

참고: 스택의 크기는 운영체제와나 컴파일러 설정에 의해 결정됨
각 스택 프레임의 크기는 해당 함수의 지역변수, 매개변수, 반환주소(복귀주소)에 따라 결정됨

이러한 부분을 참고해서 스택 오버 플로우가 나지 않게 해줘야함

0개의 댓글