728x90

목차.

  1. 개요
  2. 정적할당
  3. 동적할당
  4. 결론

 

개요

 

C++에서 배열은 데이터를 구조화하고 효율적으로 관리하기 위한 데이터 구조 중 하나입니다.

배열을 사용하면 여러 개의 데이터를 하나의 변수로 다룰 수 있습니다.

이번 글에서 배열을 정적 할당하고 동적 할당하는 방법에 대해서 설명하겠습니다.

 

정적할당

 

정적 할당 배열은 컴파일 시점에 크기가 결정되는 배열로, 배열의 크기는 런타임 중에 변경할 수 없습니다.

배열의 크기는 배열 변수를 선언할 때 결정됩니다.

 

#include <iostream>

int main() {
    int staticArray[5]; // 크기가 5인 정적 배열 선언
    //int staticArray[5] = {0}; // 선언과 동시에 0으로 초기화
    //int staticArray[5] = {10,20,30,40,50};
    staticArray[0] = 10;
    staticArray[1] = 20;

    for (int i = 0; i < 5; i++) {
        std::cout << staticArray[i] << " ";
    }

    return 0;
}

 

위 코드에서 크기가 5인 정적 배열을 선언하고 값을 할당한 후 출력하고 있습니다.

정적 배열은 크기가 고정되므로 배열의 크기를 변경하려면 새로운 배열을 만들어 데이터를 복사해야 합니다.

위 코드에서 처럼 선언과 동시에 초기화가 가능합니다.

 

동적할당

 

동적 할당 배열은 런타임 중에 크기를 동적으로 할당할 수 있습니다.

C++에서는 'new'연산자를 사용하여 동적으로 배열을 할당하고, 'delete' 연산자를 사용하여 할당된 메모리를 해제합니다.

 

#include <iostream>

int main() {
    int size;
    std::cout << "배열의 크기를 입력하세요: ";
    std::cin >> size;

    int* dynamicArray = new int[size]; // 크기가 size인 동적 배열 할당

    for (int i = 0; i < size; i++) {
        dynamicArray[i] = i * 10;
    }

    for (int i = 0; i < size; i++) {
        std::cout << dynamicArray[i] << " ";
    }

    delete[] dynamicArray; // 동적 배열 메모리 해제

    return 0;
}

 

위 코드에서 배열의 크기를 입력받아 동적으로 배열을 할당하고 값을 할당한 뒤 출력합니다.

동적 할당 배열은 필요에 따라 크기를 조절할 수 있으므로 유연성이 있습니다.

하지만 메모리 관리를 주의해야 하며, 사용이 끝난 후에는 메모리를 해제해야 합니다.

 

동적 배열을 보다 안전하게 다루기 위해 std::vector와 같은 컨테이너 클래스를 사용할 수도 있습니다

 

결론

 

C++에서 배열은 정적 할당과 동적 할당 두 가지 방법으로 생성할 수 있습니다.

정적 할당 배열은 크기가 고정되어 있고 컴파일 시점에 결정되며,

동적 할당 배열은 런타임 중에 크기를 조절할 수 있습니다.

동적 할당 배열을 사용할 때는 메모리 누수에 주의하고, 가능하면 안전한 컨테이너 클래스를 활용하여 메모리 관리를 간소화하는 것이 좋습니다.

 

728x90

+ Recent posts