티스토리 뷰
안녕하세요 ! 우디입니다.🚀
오늘은 C언어의 메모리 구조에 대해서 알아봅시다 !
메모리에는 많은 정보들이 저장됩니다.
프로그래밍 할 때 메모리는 크게 데이터 영역, 스택 , 힙 , 코드 영역으로 나눠 사용합니다.
데이터 영역
정적 변수와 전역 변수가 저장됩니다.
이 영역에 저장된 데이터는 프로그램이 종료될 때 까지 그대로 유지됩니다. ( 정적 , 전역 변수는 프로그램 전체에서 사용되기 때문이라고 봐도 되겠죵 ? )
스택
지역변수, 파라미터, 리턴 값이 저장됩니다.
LIFO ( Last In First Out )방식으로 메모리를 사용합니다.
정적할당 : 정적할당된 메모리는 스택에 쌓임 .
" int x = 10 (정적할당)" 이라고 선언 후 코드를 짜다 " x = 0 " 과 같이 " x값 "을 변경했을 때, 마지막에 들어간 ( Last In ) 0 을 반환 ( First Out ) 하게 됩니다.
➤ 데이터 영역과 스택 영역은 컴파일 하는 과정에서 메모리를 할당합니다.
힙
동적으로 할당된 데이터가 저장됩니다.
동적 메모리는 메모리의 크기를 예측할 수 없어 프로그램이 실행되는 도중에 메모리를 할당합니다.
할당된 메모리는 해제를 하지 않을 경우 프로그램이 종료될 때 까지 유지되기 때문에 반드시 해제시켜 줘야 합니다. 그러지 않으면 메모리 누수로 인해 리소스가 낭비됩니다 !!! 🌟🌟🌟
동적 할당 : 동적할당된 메모리는 힙에 쌓임 .
int *x ; ( 정적할당 , 스택에 쌓임 )
x = (int *)malloc(sizeof(int)); ( 동적할당 , 힙에 쌓임)
➥ x 포인터는 int 크기를 가지는 메모리를 가르키며 정수형을 마음껏 담을 수 있다 .
코드 영역
기계어로 번역된 코드가 저장됩니다.
'Programming > C , C++' 카테고리의 다른 글
구조체 포인터 매개변수 (0) | 2020.10.12 |
---|---|
[ C ] struct를 이용한 구조체 (0) | 2020.10.12 |
[ C ] typedef를 이용한 구조체 (0) | 2020.10.12 |
- Total
- Today
- Yesterday
- iT#it#백준#시험감독#코로나#이겨내요#대한민국#화이팅
- 백준#알고리즘#코로나#IT#구슬탈출2#13460#공부#개인공부#독학#노력
- it#일상#코로나#그만#백준#알고리즘#안드로이드#개발자
- IT#it#삼성#백준#경사로#코로나#화이팅
- IT#백준#연구소#DFS
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |