728x90
1. 개요
특징 | 정적 메모리 | 동적 메모리 |
메모리 할당 | 컴파일 시간에 이루어짐 | 실행 시간에 이루어짐 |
메모리 해제 | 자동으로 해제 | 명시적으로 해제 |
사용 범위 | 지역 변수는 선언된 블록 내, 전역 변수는 프로그램 전체에서 사용할 수 있음 | 프로그래머가 원하는 동안만큼 사용할 수 있음 |
메모리 관리 | 컴파일러 책임 | 프로그래머 책임 |
- 데이터의 개수를 미리 알 수 없을 때 사용
- 처리 대상 데이터가 유동적일 때, 특히 변동 폭이 큰 경우
2. 라이브러리 함수
헤더파일 : 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 |
![]() |
728x90
'프로그래밍 언어 > C언어' 카테고리의 다른 글
시간 관련 라이브러리 (0) | 2022.01.06 |
---|---|
함수 포인터 이해 (0) | 2022.01.03 |
문자열 비교 검색 라이브러리 (0) | 2022.01.02 |
문자 분류 데이터 변환 관련 라이브러리 (0) | 2022.01.01 |
수학 관련 라이브러리 (0) | 2022.01.01 |