01
03
728x90

1. 개요

특징 정적 메모리 동적 메모리
메모리 할당 컴파일 시간에 이루어짐 실행 시간에 이루어짐
메모리 해제 자동으로 해제 명시적으로 해제
사용 범위 지역 변수는 선언된 블록 내, 전역 변수는 프로그램 전체에서 사용할 수 있음 프로그래머가 원하는 동안만큼 사용할 수 있음
메모리 관리 컴파일러 책임 프로그래머 책임
  1.  데이터의 개수를 미리 알 수 없을 때 사용
  2.  처리 대상 데이터가 유동적일 때, 특히 변동 폭이 큰 경우

 

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
COMMENT