[c++] 배열과 포인터를 사용한 동적 메모리 할당

동적 메모리 할당은 프로그램 실행 중에 필요한 메모리를 할당하는 방법으로, 배열과 포인터를 사용하여 구현할 수 있습니다. C++에서는 new 연산자를 사용하여 동적으로 메모리를 할당하고 delete 연산자를 사용하여 할당된 메모리를 해제할 수 있습니다. 이 글에서는 배열과 포인터를 이용한 동적 메모리 할당에 대해 살펴보겠습니다.

배열을 사용한 동적 메모리 할당

배열을 사용하여 동적으로 메모리를 할당하려면, new 연산자를 사용하여 배열의 크기에 해당하는 메모리를 할당합니다. 예를 들어, 다음은 int형 배열을 동적으로 할당하는 예제입니다.

int size = 5;
int* arr = new int[size];

위의 코드에서 new 연산자를 사용하여 size만큼의 int형 메모리를 동적으로 할당합니다. 할당된 메모리는 포인터 arr에 할당되며, 이후에 arr을 통해 할당된 메모리에 접근할 수 있습니다. 동적으로 할당된 메모리는 더 이상 필요하지 않을 때 반드시 delete 연산자를 사용하여 해제해야 합니다.

delete[] arr;

포인터를 사용한 동적 메모리 할당

또한, 포인터를 사용하여 동적 메모리를 할당할 수도 있습니다. 예를 들어, 다음은 int형 변수를 동적으로 할당하는 예제입니다.

int* ptr = new int;

위의 코드에서 new 연산자를 사용하여 int형의 메모리를 동적으로 할당합니다. 할당된 메모리는 포인터 ptr에 할당되며, 이후에 ptr을 통해 할당된 메모리에 접근할 수 있습니다. 마찬가지로, 메모리를 해제할 때에는 delete 연산자를 사용해야 합니다.

delete ptr;

결론

배열과 포인터를 사용하여 동적 메모리를 할당하는 방법에 대해 살펴보았습니다. 동적 메모리 할당은 메모리의 유연한 사용을 가능하게 하지만, 메모리 누수와 같은 문제에 대한 주의가 필요합니다. 따라서 프로그래머는 메모리 할당 후 적절하게 해제하는 것이 중요합니다.