본문 바로가기
자바 Java

c언어의 메모리 구조

by MEHAVING 2019. 10. 5.
반응형

 

프로그램 실행 → 운영체제가 프로그램 실행을 위한 메모리 공간을 마련 → 변수, 문자열 등은 메모리 공간 내 선언된다

 

 

메모리의 구조

프로그램이 실행되기 위해서는 먼저 프로그램이 메모리에 불러와(load)져야 한다

이 때 프로그램에서 사용될 변수들을 저장할 메모리도 필요하다

 

 

 

따라서 컴퓨터의 운영체제는 프로그램의 실행을 위해 다양한 메모리 공간을 제공(할당)한다

 

어떤 메모리 공간?

1. 코드(code) 영역

2. 데이터(data) 영역

3. 스택(stack) 영역

4. 힙(heap) 영역

 

왜 나눠?

유사한 성향의 데이터를 묶어 저장하면, 관리가 용이해지고 메모리의 접근속도가 향상되기 때문 !

ex) 서랍장의 수납공간이 나눠져있으면 물건을 찾을 때 한결 수월한 것

 

 

자세히 봐보자

 

1) 코드(code)영역

실행할 프로그램의 코드가 저장되는 메모리 공간

CPU는 코드 영역에 저장된 명령문들을 하나씩 가져가서 실행한다.

 

2. 데이터(data) 영역

프로그램 시작과 동시에 전역변수static으로 선언되는 static변수가 메모리 공간에 할당되어 운영체제가 할당된 메모리 공간 전체를 반환하는 프로그램 종료 시까지 남아있음

 

3. 스택(stack) 영역

지역변수매개변수가 할당된다. 선언된 함수를 빠져나가면 소멸

 

4. 힙(heap) 영역

프로그래머가 원하는 시점에 변수를 할당하고 소멸하도록 지원하는 메모리 공간

ex) 동적 메모리

 

 

http://tcpschool.com/c/c_memory_malloc

 

코딩교육 티씨피스쿨

4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등

tcpschool.com

 


 

반응형

댓글