프로그래밍 언어/C

프로그램 - 메모리 할당

gcreators 2024. 8. 7. 15:47

프로그램에서는 데이터를 메모리에 저장해 놓으면 필요할 때 마다 꺼내서 사용할 수 있습니다.

이때 변수 선언(Variables Declaration)을 통해 메모리에 '저장 공간'을 '미리' 만들어둡니다.

 

아래 공간을 메모리 라고 생각해봅시다

1              
               
      10        
               
          100    
               
  a            
               

데이터는 이렇게 메모리의 빈 공간에 아무렇게나 들어가게 됩니다

물론 데이터가 들어갈 메모리를 따로 지정해주거나 관리해주는 프로그램을 활용한다면 저렇게 무작위로 들어가진 않고 정리가 가능은 합니다

 

자.. 그런데 실제로 컴퓨터의 메모리는 저렇게 저장이 되지는 않습니다 저것은 하나의 예시일 뿐 입니다.

조금 더 자세히 살펴보도록 하죠

 

컴퓨터는 전자기기 입니다.

복잡한 연산을 아주 빠르고 쉽게 할 수 있게 도와주지만 결국 그 본질은 커다란 계산기죠

 

컴퓨터에는 전기가 들어왔는지(1) 아닌지(0)에 대한 값 만을 알 수 있습니다.

전기가 들어왔는지 아닌지 그 유무에 대해 알 수 있는 공간을 우리는 bit 라고 부릅니다.

 

1bit에는 0 또는 1의 전기신호만 표시가 가능한거죠

 

하지만 우리가 사용하는 숫자나 문자는 다양하고 0과 1로만 이를 표현 할 수는 없습니다

2 이상의 숫자가 들어오게 되면 자릿수를 올려서 표시를 하게 됩니다(2bit)

 

예를들어

숫자 0은    0

숫자 1은    1

숫자 2는 1 0

숫자 3은 1 1

이런식으로 표시가 되죠

이를 우리는 이진법이라고 부릅니다

 

이를 메모리로 다시 보여드리겠습니다

 

0과 1은 1개의 공간 bit

2와 3은 2개의 공간 2bit

이런식으로 숫자가 늘어날 수록 필요한 메모리의 공간도 달라지게 됩니다

 

그렇다면 다시 변수를 선언했을때 그곳에 들어갈 데이터에 따라 메모리의 공간이 변하게 된다면

 

1 0   0 1 1 1 1

 

이렇게 차지하고 있는 공간에서 가운대에 있는 0 에 해당하는 데이터를 2bit가 넘는 숫자인 5로 바꾸게 된다면 메모리가 부족하게 되지 않겠습니까?

어떠한 결과가 나올진 모르겠지만 확실한건 우리가 원하는 데이터가 들어가지는 못 한다는 것이죠

 

그렇기에 메모리의 '공간' 자체를 '미리' 할당 받아놔야 이런 일이 발생하지 않게 되는 것 입니다

 

하지만 어떤 데이터가 들어올지도 모르는 공간을 얼마나 미리 할당 받아놔야 할까요?

무작정 공간을 받아두고 활용하지 않는다면 이것 역시 낭비가 되게 됩니다.

이에 대한 기준을 정해둔 것이 바로 자료형(Data Types) 입니다.

'프로그래밍 언어 > C' 카테고리의 다른 글

컴퓨터의 음수와 MSB / LSB  (0) 2024.08.07
자료형(Data Types)  (0) 2024.08.07
C언어) 소스 파일과 헤더 파일  (0) 2024.08.06
함수(Functions) _ feat. 전처리기  (0) 2024.08.06
절차적 프로그래밍  (0) 2024.08.06