메모리의 용량이 프로그램의 구동에 미치는 영향을 설명할 수 있습니다.
컴퓨터는 RAM이라는 물리적 저장장치를 갖고있으며 우리가 작성한
프로그램은 구동 중 RAM에 저장된다. 하지만 RAM은 저장용량의 한계가 있기때문에 유한한 값의 비트만 저장할 수 있기때문에 때때로 부정확한 결과가 나온다.
float를 이용하여 소수점을 나타내는 프로그램을 작성해보자.
#include <cs50.h>
#include <stdio.h>
int main(void)
{
float x = get_float("x:");
float y = get_float("y:");
printf("x / y = %f\n", x/y);
}

위와같이 코드를 작성하면 저런식으로 소수점이 출력되는데
저 소수점의 갯수를 변경할 수 있다 바로 %뒤에 %."숫자"를 집어넣으면 된다
그 결과값을 한번 출력해보면

위와같이 출력된다. 만약 소수점 자리를 50번째 자리까지 출력해본다 가정한다면

말도안되는 값이 출력된다.그 이유는 float에서 저장 가능한 비트 수가
유한하기 때문에 부정확한 결과값이 나온다.
비슷한 오류로 정수에서 일정 수를 넘기면 에러가뜨는 현상이다
#include <stdio.h>
#include <unistd.h>
int main(void)
{
for (int i = 1; ; i*= 2) //*=2 는 곱하기 2를 의미한다
{
printf("%i\n", i );
sleep(1);
}
}

위에 코드를 알아보면 정수 i 가 계속해서 커지는 코드이다.
int 에서는 한정된 비트만 저장될 수 있기때문에
그 이상의 숫자는 저장할 수 있다. 그렇기때문에 저런 오류가뜬다.
실생활에서도 오버플로우는 일어나는 경우가 있다.
해결하는 방법은 몇가지 있지만
용량을 늘리면 비용적인 부분이 발생하기때문에 힘들고
그때그때 초기화하는건 힘드므로 자동화 시스템을 구축하여
초기화하는 모습이 가장 적합하지않을까 생각한다.
출처:
https://leverageedu.com/blog/be-computer-science/
https://m.boostcourse.org/