Memory

--·2022년 7월 1일
0

메모리란

질문!

128MB이면 int형 몇개까지 선언가능한가요?
int형 = 4Byte
1KB = 1024Byte
1MB = 1024KB
128MB = 128 X 1024KB = 128 X 1024 X 1024B

  • int의 크기로 나누어주면
    128 X 1024 X 1024Byte / 4Byte = 33554432

프로그램 실행 시 운영체제에 의하여 마련되는 메모리의 구조는 다음과 같이 크게 4개의 영역으로 구분된다.

    1. 코드 영역 (CodeArea)
    1. 데이터 영역 (DataArea)
    1. 힙 영역 (HeapArea)
    1. 스택 영역 (StackArea)
  • 1. 코드영역 (CodeArea)

    코드 영역은 이름 그대로 프로그램의 코드가 저장되는 영역.
    CPU는 코드영역에 저장된 명령문들을 하나씩 가져가서 실행.
  • 2. 데이터 영역 (DataArea)

    데이터 영역에는 전역변수, static으로 선언된 변수들이 할당되는 공간이다.
    이 영역에 할당되는 변수들은 프로그램 시작과 동시에 메모리 공간에 할당.
    (전처리기의 개념. 컴파일과 동시에 메모리에 공간을 확보)
    프로그램 종료시 소멸된다.
  • 3. 힙 영역 (HeapArea)

    프로그래머가 원하는 시점에 변수를 할당, 소멸하도록 지원하는 영역.
    C++은 new, C는 malloc과 같이 동적할당으로 메모리 할당을 할때 할당되는 영역이다.
    이 공간의 메모리들은 자동으로 소멸되지 않는다.
    직접 메모리의 할당과 해체를 해줘야 하는 공간!
  • 4. 스택 영역 (StackArea)

    스택 영역은 지역변수와 매개변수들이 임시적으로 할당되는 공간이다.
    이 영역에 할당되는 변수들은 함수가 실행되었을 때 할당되고, 함수의 종료시 메모리가 해제된다.

0개의 댓글