[c] 동적 메모리 할당

동적 메모리 할당은 프로그램 실행 중에 메모리를 할당하는 것을 의미합니다. 이를 통해 프로그램은 실행 중에 필요한 만큼의 메모리를 동적으로 확보할 수 있습니다. 이 글에서는 C 언어를 기준으로 동적 메모리 할당에 대해 알아보겠습니다.

메모리 할당 함수

C 언어에서 동적 메모리를 할당하기 위해 사용되는 함수는 malloc, calloc, realloc 등이 있습니다.

malloc

malloc 함수는 메모리 블록을 할당하는 데 사용됩니다. 할당하고자 하는 메모리의 크기를 인자로 전달하여 호출하며, 할당에 성공하면 할당된 메모리의 주소를 반환합니다.

int *ptr = (int *)malloc(10 * sizeof(int));

calloc

calloc 함수는 메모리를 할당하고 0으로 초기화하는 데 사용됩니다. 할당하고자 하는 메모리의 크기와 각 요소의 크기를 인자로 전달하여 호출하며, 할당에 성공하면 할당된 메모리의 주소를 반환합니다.

int *ptr = (int *)calloc(10, sizeof(int));

realloc

realloc 함수는 이미 할당된 메모리 영역의 크기를 변경하는 데 사용됩니다. 이미 할당된 메모리 블록의 포인터와 새로운 크기를 인자로 전달하여 호출하며, 크기를 변경한 새로운 메모리 블록의 주소를 반환합니다.

int *ptr = (int *)realloc(ptr, 20 * sizeof(int));

메모리 해제

동적으로 할당된 메모리는 사용이 끝나면 해제되어야 합니다. 이를 위해 free 함수를 사용하여 메모리를 해제할 수 있습니다.

free(ptr);

동적 메모리 할당은 메모리 사용을 최적화하고 유연한 프로그래밍을 가능하게 합니다. 그러나 올바른 사용이 중요하며 메모리 누수를 방지하기 위해 신중하게 다뤄져야 합니다.

이상으로 C 언어에서의 동적 메모리 할당에 대해 알아보았습니다. 도움이 되셨기를 바랍니다!