반응형

0. 시작하기

 

1. 메모리 구조

C, Java와 같은 언어를 이용한 프로그래밍에 익숙하다면 많이 들어봤고 잘 알고있을 내용일 겁니다.

[ Code, Data, Stack, Heap ] 이라는 3개의 공간에 대해서 간단히 언급 정도하겠습니다. (알고있다면 넘어가도 좋습니다.)

 

프로그램은 운영체제에 의해서 관리되는 메인 메모리(Ram)의 일부를 할당받아 사용하게됩니다. 프로그램을 사용하는 사용자는 잘 모르지만, 프로그래머가 생성한 변수들은 코드에 따라 할당받은 메모리 이곳저곳에 저장되게됩니다.

 

무질서하게 배치되는 것은 아닙니다. 위에서 언급한 [ Code, Data, Stack, heap ] 이라는 영역에 적절하게 배치되는데요. 쉽게 본다면 아래와 같습니다.

 

  • Code 영역 : 말 그대로 실행할 코드가 저장되어있는 영역입니다. (기계어 형태로 존재합니다.)
  • Data 영역 : 전역변수, Static변수 들이 저장됩니다.
  • Stack 영역 : 지역변수, 매개변수들이 저장됩니다.
  • Heap 영역 : malloc 함수 등에 의해서 동적으로 할당되어 사용되는 영역입니다.

 

위의 내용이 중요하지 않다고 생각할 수 있지만, 앞으로 클래스(객체지향), 동적할당 등에 대해서 다루다보면 이러한 메모리 구조를 몰라서 발생하는 문제들을 겪을 수 있습니다.

 

때문에 앞으로 다루는 포스터에서 위의 메모리 영역에 대한 언급이 있을 수 있기 때문에 앞서 간단히 다루고 넘어가는 것입니다.

 

2019/01/03 - [프로그래밍/C언어] - C언어 메모리 구조 - 실제 메모리로 확인하기 (1/3)

 

C언어 메모리 구조 - 실제 메모리로 확인하기 (1/3)

C언어가 사용하는 메모리 구조 XCode를 이용하였지만, 보는데에는 큰 지장이 없습니다. 1. C언어가 사용하는 메모리 C언어의 메모리 관리와 관련된 이미지를 검색해보면 정말 다양한 내용들을 볼 수 있었다. 근데..

youngq.tistory.com

 

반응형

+ Recent posts