목차.
개요
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++에서 배열은 정적 할당과 동적 할당 두 가지 방법으로 생성할 수 있습니다.
정적 할당 배열은 크기가 고정되어 있고 컴파일 시점에 결정되며,
동적 할당 배열은 런타임 중에 크기를 조절할 수 있습니다.
동적 할당 배열을 사용할 때는 메모리 누수에 주의하고, 가능하면 안전한 컨테이너 클래스를 활용하여 메모리 관리를 간소화하는 것이 좋습니다.
'프로그래밍 > C++' 카테고리의 다른 글
[C++] 공백을 포함한 문자열 입력받기(getline) (0) | 2023.07.31 |
---|---|
[C++] 아스키 코드를 정수로 변환하기 (0) | 2023.07.31 |
[C++] 문자를 아스키 코드로 형변환 하는법 (0) | 2023.07.31 |
[C++] STL Set Container 특징 및 사용 (0) | 2023.07.28 |
[C++] 입력과 출력 (0) | 2023.06.29 |