학습내용
- 동적 메모리 이해
- 동적 메모리 활용
학습목표
- 동적 메모리의 기본 개념을 파악하고 용도를 설명할 수 있다.
- 동적으로 메모리 할당이 필요한 작업에 적용할 수 있다.
동적 메모리 이해
1. 개요
특징 | 정적 메모리 | 동적 메모리 |
메모리 할당 | 컴파일 시간에 이루어 짐 | 실행 시간에 이루어 짐 |
메모리 해제 | 자동으로 해제 | 명시적으로 해제 |
사용 범위 | 지역변수는 선언된 블록 내, 전역변수는 프로그램 전체에서 사용할 수 있음 | 프로그래머가 원하는 동안만큼 사용할 수 있음 |
메모리 관리 | 컴파일러의 책임 | 프로그래머의 책임 |
1) 데이터의 개수를 미리 알 수 없을 때 사용
2) 처리 대상 데이터가 유동적일 때, 특히 변동 폭이 큰 경우
2. 라이브러리 함수
1. 종류
1) 헤더파일 stdlib.h
함수 | void * malloc (size_t size); |
설명 | * 실핼 시 메모리를 할당(초기화 없음) * size : 할당 크기 |
반환 | * 할당된 메모리 포인터를 반환 * 할당 실패 시 null을 반환 |
함수 | void * calloc (size_t num, size_t size); |
설명 | * 실핼 시 메모리를 할당(초기화 0) * num : 개수 * size : 기본크기 |
반환 | * 할당된 메모리 포인터를 반환 * 할당 실패 시 null을 반환 |
함수 | void * realloc (void * ptr, size_t size); |
설명 | * 할당된 메모리의 크기를 변경 * ptr : 재할당 메모리 포인터 * size : 재할당 크기 |
반환 | * 재할당된 메모리 포인터를 반환 * 할당 실패 시 null을 반환 |
함수 | void free(void * ptr); |
설명 | * 할당된 메모리를 해제 * ptr : 해제할 메모리 포인터 |
반환 | * none |
2) malloc( )
3) free( )
4) calloc( )
5) realloc( )
동적 메모리 활용
1. 함수 기초
2. 함수 활용
학습정리
1. 동적 메모리 이해
- 동적 할당은 실행 시에 할당되는 메모리임
- 동적 할당은 힙 영역에 할당함
- 동적 할당은 실행 시 크기가 정해지는 데이터 처리에 효과적임
- 동적 할당된 공간은 프로그래머가 해제해야 함
2. 동적 메모리 활용
- malloc, calloc은 동적으로 메모리를 할당하는 라이브러리 함수임
- calloc은 동적 할당 후 0으로 초기화
- free는 동적 할당된 메모리를 해제함
- realloc은 동적 메모리의 크기를 변경하여 할당하는 것이 가능함
'국비지원 학원 - JAVA기반 스마트앱 개발2021 > 프로그래밍 언어활용' 카테고리의 다른 글
도서관리 시스템 고도화(동적메모리) (0) | 2021.08.08 |
---|---|
함수 포인터 (0) | 2021.08.07 |
도서관리 시스템 고도화(라이브러리 적용) (0) | 2021.08.07 |
문자열 비교 검색 라이브러리 (0) | 2021.08.07 |
문자 분류 데이터 변환 관련 라이브러리 (0) | 2021.08.05 |
댓글
이 글 공유하기
다른 글
-
도서관리 시스템 고도화(동적메모리)
도서관리 시스템 고도화(동적메모리)
2021.08.08 -
함수 포인터
함수 포인터
2021.08.07 -
도서관리 시스템 고도화(라이브러리 적용)
도서관리 시스템 고도화(라이브러리 적용)
2021.08.07 -
문자열 비교 검색 라이브러리
문자열 비교 검색 라이브러리
2021.08.07