스택 메모리

·2022년 6월 2일

C-Study

목록 보기
13/21

#220602
54, 55, 56

  • 스택 메모리 (위에서 아래로 쌓이고 ~)

    • 모든 자료형은 '값형'으로도 '참조형'을 만들 수 있다.

    • 각 함수에서 사용하는 지역 변수 등을 임시적으로 저장하는 공간

    • 스택 메모리의 '크기'는 프로그램 '빌드'시에 결정

    • 스택 메모리의 '위치'는 '실행' 시에 결정

      • 이제까지 기본 자료형(char, int, float)를 new 없이 사용 할 수 있었던 것은 스택 메모리에 할당됐기 때문
      • new로 만든 데이터는 heap 메모리에 할당됨
      int add(const int a, const int b)
      {
      	int res = a + b;
       	return res;
      }
      
      int main(void)
      {
       int a = 1;
       int b = 2;
       return add(a,b);
      }
       

      <스택 메모리>

  • ESP : 현재 스택 포인터 ( 시작이 되는 위치 )

  • EBP: 현재 스택 프레임의 기본(첫) 주소 입구

  • 스택 프레임: 각 함수가 사용하는 스택 메모리의 범위

⭐️ 너무 큰 데이터는 스택에 넣으면 안된다!

  • 이럴 경우에는 사용하는 것이 동적 메모리 할당
  • 스택을 사용하는 것이 훨씬 빠름
  • 스택의 크기가 약 1MB일 때 곧바로 스택 오버플로가 남
  
profile
Hakuna Matata

0개의 댓글