일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- public
- Android
- Encapusulation
- sensor
- digitalRead
- length
- aduino
- memory
- parameter
- Contour
- flutter
- stream
- Class
- UNO
- Binary
- Pointer
- compare
- Barcode
- SERIAL
- preprocessing
- mfc
- Unity
- inheritance
- file access
- Overloading
- Read
- wpf
- APP
- java
- atmega328
- Today
- Total
폴크(FOLC)
C 메모리는? 본문
# 물리적인 메모리 영역에 source code 가 load 되고 프로그램에서 사용하는 변수들과 메모리 공간을 할당
> 코드 영역 : 실행 프로그램 소스 코드가 저장되는 공간
- 실행 시점에 결정
> 데이터 영역 : 전역/정적 변수들이 저장되는 공간
- 컴파일 시점에 결정
> 스택 영역 : 지역/매개 변수들이 저장되는 공간
- 컴파일 시점에 결정
> 힙 영역 : User 가 직접 관리 하는 공간 ( 생성/삭제 )
- 실행 시점에 결정
# 메모리 할당1
> User 에 의해서 힙 영역에 특정 공간을 관리하기 위한 요청이 발생
> malloc 명령어를 이용해서 할당 받고 free 명령어를 이용해서 해제
> byte 단위로 전체 크기를 설정
> return 값은 첫번째 주소값 ( pointer )
# 메모리 할당2
> User 에 의해서 힙 영역에 특정 공간을 관리하기 위한 요청이 발생
> calloc 명령어를 이용해서 할당 받고 free 명령어를 이용해서 해제
> 두개의 파라미터를 이용해서 전체 크기를 설정 ( block count, byte of block )
> return 값은 첫번째 주소값 ( pointer )
# 메모리 할당3
> User 에 의해서 힙 영역에 특정 공간을 관리하기 위한 요청이 발생
> realloc 명령어를 이용해서 할당 받고 free 명령어를 이용해서 해제
> 두개의 파라미터를 이용해서 전체 크기를 설정 ( pointer of memory, total size )
> return 값은 첫번째 주소값 ( pointer )
> 할당 받은 메모리 공간을 재 할당 요청, 할당 받지 않은 상태(NULL)로 재 할당하면 malloc 과 동일
# 오버플로우 ( overflow )
> 더 이상의 여유 공간이 없거나 접근 가능한 공간을 벗어난 경우
'교육 관련 > C' 카테고리의 다른 글
C 사용자 정의 자료형 (0) | 2022.01.22 |
---|---|
C 입/출력 및 문자열 (0) | 2022.01.21 |
C 파라미터 전달 방법 (0) | 2022.01.17 |
C 배열 과 포인터 (0) | 2022.01.14 |
C 함수 와 변수 (0) | 2022.01.12 |