티스토리 뷰
반응형
본 포스팅은 개인공부 후 자료를 남기기 위한 목적임으로 내용 상에 오류가 있을 수 있음을 밝힙니다.
메모리를 중앙처리장치(CPU)가 하드디스크에서 리소스를 불러오기 전 거쳐가는 장소이다. 비유를 들어 CPU가 작업자, 하드디스크를 창고, 메모리를 작업대라고 가정 했을 때, 창고 (하드디스크)의 물건을 작업자(CPU)가 작업을 하기 위해 작업대(메모리)로 불러오는 것과 같다. CPU가 C언어로 코딩 된 소스파일을 빌드 하면서 메모리를 할당 받게 된다. 여기서 변수를 선언한다는 것은 메모리의 일정 부분을 할당 받아 쓰겠다는 뜻인데, 이는 작업자 (CPU)가 작업대(메모리)에서 특정 부분을 ‘어떠한 작업’을 위한 구역으로 사용하겠다고 비유할 수 있다. 실제로 int 형 변수를 선언하게 되면 메모리 상에서 int형 변수의 크기인 4byte 만큼을 할당 받게 된다. CPU는 이렇게 메모리상에서 할당된 변수를 사용하여 계산을 진행한다. int로 선언된 4byte 만큼의 크기를 넘어서는 작업을 하게 되면 흔히 말하는 오버플로우가 일어나게 된다. 또한 C언어에서는 각 자료형(char, float, double 등…) 마다 크기를 지정해서 그 크기만큼 메모리를 할당 받을 수 있다.
반응형
'개인공부 > C and C++' 카테고리의 다른 글
struct member alignment(구조체 멤버 정렬)에 대해 (0) | 2014.01.16 |
---|---|
realloc, calloc 함수 및 예제 (1) | 2014.01.16 |
strlen, strcmp, strcat, strcpy, strrev, strtok, atoi, itoa 설명 및 함수로 구현 (0) | 2014.01.16 |
Call by value와 Call by reference에 대해 (5) | 2014.01.16 |
컴파일러(Complier), 링커(Linker)에 대해 (1) | 2014.01.16 |
오버플로우(overflow)시 전혀 다른 값이 나오는 이유 (2) | 2014.01.16 |
printf, scanf 를 제외한 표준입출력 함수들의 차이 (0) | 2014.01.16 |