Coding/C++
[C++] 동적 할당 배열 Dynamically Allocating Array
ted0505
2022. 8. 13. 12:36
정적 배열
- 컴파일 타임에 배열의 크기가 미리 결정되어야한다.
- 프로그램 실행 전에 메모리 공간을 할당 받기 때문이다.
int length;
int array[length];
동적 할당 배열
- 런타임에 배열의 크기를 결정하고, 그때 그때 OS로부터 메모리 영역을 받아온다.
#include <iostream>
using namespace std;
int main()
{
int length;
cin >> length; // 실행 중에 입력으로 결정된 크기
int* array = new int[length]; // 동적할당
for (int i = 0; i < length; ++i) // 원소 대입
cout << *(array + i) << "\t"; // array[i] 로 해도 괜춘
delete [] array; // 메모리 해제 잊지말기
}
- int* array = new int[length]; // 동적할당
- new 키워드를 사용하여 배열의 크기를 동적으로 할당 받아 할당받은 배열의 주소를 array에 저장한다.
- 할당 받은 배열의 원소들은 쓰레기 값이다.
- new 키워드를 사용하여 배열의 크기를 동적으로 할당 받아 할당받은 배열의 주소를 array에 저장한다.
int* array = new int[length]();
- 할당 받은 배열의 원소들을 0으로 초기화하기 위해서는 (), {} 가 필요하다.
int* array = new int[length]{1, 2, 3, 4, 5};
- 단 이 경우엔 메모리에 요청한 length와 초기화된 원소의 개수가 동일해야 한다.