[c언어] 동적 배열

동적 배열은 프로그램 실행 중에 크기를 동적으로 조절할 수 있는 배열이다. C 언어에서는 동적 배열을 만들기 위해 포인터와 메모리 할당 함수를 사용한다.

동적 배열의 장점

동적 배열을 사용하는 주된 이유는 크기의 변화에 대응하기 쉽다는 점이다. 정적 배열은 초기에 정해진 크기를 초과하면 문제가 발생할 수 있지만, 동적 배열은 실행 중에 크기를 조절할 수 있어 보다 유연한 프로그래밍이 가능하다.

동적 배열 사용 예시

#include <stdio.h>
#include <stdlib.h>

int main() {
    int *arr = NULL;  // 포인터 초기화
    int size, i;

    printf("배열의 크기를 입력하세요: ");
    scanf("%d", &size);

    arr = (int*)malloc(size * sizeof(int));  // 메모리 할당

    if (arr == NULL) {
        printf("메모리 할당 실패\n");
        return -1;
    }

    printf("배열에 저장할 값을 입력하세요: ");
    for (i = 0; i < size; i++) {
        scanf("%d", &arr[i]);
    }

    printf("입력한 값은: ");
    for (i = 0; i < size; i++) {
        printf("%d ", arr[i]);
    }
    printf("\n");

    free(arr);  // 메모리 해제

    return 0;
}

위 예시 코드는 사용자로부터 배열의 크기를 입력받고, 해당 크기에 맞게 메모리를 할당하여 동적 배열을 생성하는 과정을 보여준다. 사용이 끝나면 반드시 free 함수를 사용하여 메모리를 해제해야 한다.

결론

동적 배열은 C 언어에서 유용하게 활용되는 기능 중 하나이다. 동적 배열을 적절히 활용하면 프로그램의 유연성을 높일 수 있으며, 메모리를 효율적으로 관리할 수 있다.

참고문헌: