반응형
동적 할당이란?
C++ 에서 동적 할당은 프로그램 실행 중에 메모리를 동적으로 할당하고 해제하는
프로세스를 의미합니다. 동적 할당은 정적 할당과 달리 프로그램이 실행되는 동안
필요한 메모리를 유연하게 관리할 수 있게 해줍니다.
C++ 에서는 new 연산자와 delete 연산자를 사용하여 동적 할당을 할 수 있습니다.
new 연산자
new 연산자는 동적으로 메모리를 할당하고 해당 메모리에 대한 포인터를
반환합니다. 할당된 메모리는 힙(heap)영역에 위치하며, 필요에 따라
크기를 조정할 수 있습니다. new 연산자를 사용하여 동적으로 할당된 메모리는
반드시 delete 연산자를 사용하여 해제해야 합니다.
int* num = new int; // int 타입의 메모리 할당
*num = 10; // 메모리에 값 할당
delete 연산자
delete 연산자는 new 연산자로 할당한 동적 메모리를 해제합니다.
메모리를 해제하지 않으면 프로그램이 종료되더라도 할당된 메모리는
반환되지 않으며, 메모리 누수(memeory leak)가 발생합니다.
int* num = new int;
*num = 10;
delete num; // 메모리 해제
배열의 동적 할당
C++에서 배열 또한 동적으로 할당할 수 있습니다.
아래의 코드와 같이 배열을 동적 할당, 해제할 수 있습니다.
int* arr = new int[5]; // 크기가 5인 int 배열 할당
arr[0] = 10; // 배열 요소에 값 할당
delete[] arr; // 배열 해제
동적 객체 생성
클래스 객체 또한 동적으로 할당이 가능하다.
new 연산자를 사용하여 객체를 할당 후, delete 연산자로 해제합니다.
class Test
{
public:
Test()
{
cout << "Test 생성자 호출" << endl;
}
~Test()
{
cout << "Test 소멸자 호출" << endl;
}
};
Test* testObject = new Test; // Test 객체 할당
delete testObject; // 객체 해제
동적 할당 정리
동적 할당은 필요한 만큼의 메모리를 프로그램 실행 중에 할당할 수 있게 해주어
유연성을 제공해 줍니다. 그러나 적절한 메모리 관리가 필요하며, 할당된 메모리를
해제하지 않으면 메모리 누수 문제가 발생할 수 있으므로 주의해야 합니다.
반응형
반응형
'C++' 카테고리의 다른 글
구조체 (0) | 2023.05.30 |
---|---|
인라인 함수 (0) | 2023.05.30 |
강한 타입 검사 (0) | 2023.05.30 |
C++ 표준 라이브러리 (1) | 2023.05.30 |
클래스에 대한 이해 (0) | 2023.05.30 |