반응형
동적 할당이란?

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

+ Recent posts