[c언어] C언어 동적 메모리 할당
C언어에서 동적 메모리 할당은 프로그램 실행 중에 메모리를 할당받는 프로세스를 의미합니다. 동적 메모리 할당은 프로그램이 실행되는 동안 필요한 만큼의 메모리를 할당하고, 필요하지 않은 경우에는 메모리를 해제할 수 있도록 해줍니다. 이를 통해 프로그램이 효율적으로 메모리를 관리할 수 있게 됩니다.
동적 메모리 할당 함수
C언어에서는 malloc
, calloc
, realloc
, free
등의 함수를 사용하여 동적으로 메모리를 관리합니다.
malloc
void* malloc(size_t size);
malloc
함수는 동적으로 메모리를 할당합니다. 할당할 메모리의 크기를 바이트 단위로 인자로 전달하고, 할당된 메모리 블록의 시작 주소를 반환합니다. 할당에 실패하면 NULL
을 반환합니다.
calloc
void* calloc(size_t num, size_t size);
calloc
함수는 메모리를 할당하고 모든 바이트를 0으로 설정합니다. num
은 할당할 요소의 개수이고, size
는 각 요소의 크기입니다. 할당에 실패하면 NULL
을 반환합니다.
realloc
void* realloc(void* ptr, size_t size);
realloc
함수는 이미 할당된 메모리 블록의 크기를 변경합니다. 기존 메모리 블록의 주소와 변경할 크기를 인자로 전달합니다. 메모리 블록의 주소를 반환합니다. 실패하면 NULL
을 반환합니다.
free
void free(void* ptr);
free
함수는 동적으로 할당된 메모리를 해제합니다. 해당 메모리 블록을 해제하고, 해당 메모리 공간을 다시 사용할 수 있도록 합니다.
동적 메모리 할당은 메모리 누수와 프로그램의 효율적인 메모리 관리를 위해 매우 중요합니다. 잘 활용하여 프로그램의 성능을 향상시킬 수 있습니다.