7. new 와 delete(동적 배열)이 궁금해.

2021. 11. 24. 20:40c++/기초

우리는 동적 배열을 만들 필요성을 이따금씩 느낀다.

이때 new와 delete를 활용할 수 있다.

항상 배열의 길이가 정해져 있는 것이 아니기 때문이다. 사용자의 입력에 따라서 길이가 변하는 배열을 만들어 보자.

 

int main()
{
	int arr_size;
	cin >> arr_size;

	int *list = new int[arr_size]; // 메모리를 할당 받는다!

	for (int i = 0; i < arr_size; i++) {
		cin >> list[i];
	}

	for (int i = 0; i < arr_size; i++) {
		cout << list[i];
	}

	delete [] list; //다시 할당 되었던 메모리를 운영체제에게 돌려준다

	return 0;
}

결과는 이렇다

우선 5를 입력을 받고

배열 요소의 값을 하나 하나 입력해준다.

int형 포인트에다가 new (새로 메모리를 할당한다는 것을 의미함.) 와 우리가 원하는 크기의 배열의 주소를 할당시켜준다.

new를 사용했으면 꼭 delete로 운영체제에게 돌려주자 (배열일 경우 delete [] 로 해제해준다)

그러면 이 list는 하나의 배열로써 자유롭게 사용할 수 있다.

 

반응형