[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 함수는 동적으로 할당된 메모리를 해제합니다. 해당 메모리 블록을 해제하고, 해당 메모리 공간을 다시 사용할 수 있도록 합니다.

동적 메모리 할당은 메모리 누수와 프로그램의 효율적인 메모리 관리를 위해 매우 중요합니다. 잘 활용하여 프로그램의 성능을 향상시킬 수 있습니다.