[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 언어에서의 동적 메모리 할당에 대해 알아보았습니다. 도움이 되셨기를 바랍니다!