공부/C++

new와 delete의 개념 및 차이점

셩잇님 2023. 1. 17. 10:47
반응형

 

 

1. new와 delete의 개념

C++에서 "new"는 런타임에 개체 또는 개체 배열에 대한 메모리를 동적으로 할당하는 데 사용됩니다. 반면에 "delete"는 "new"를 사용하여 이전에 할당된 메모리 할당을 해제하는 데 사용됩니다.

"new"는 생성되는 객체의 생성자를 호출하고, "delete"는 삭제되는 객체의 소멸자를 호출합니다. 메모리 누수를 방지하려면 "delete"를 사용하여 "new"를 사용하여 할당된 메모리를 할당 해제하는 것이 중요합니다.

 

2. new와 delete의 사용 예제

다음은 new와 delete를 사용한 C++ 예제입니다. 새로 할당된 메모리 블록의 시작 부분에 대한 포인터를 반환합니다.

int* pInt = new int;

 

new를 사용하여 객체 배열을 할당할 수도 있습니다. 또한 new가 생성되는 객체의 생성자도 호출한다는 점은 주목할 가치가 있습니다.

int* pArray = new int[10];


반면에 "delete"는 이전에 "new"를 사용하여 할당된 메모리를 할당 해제하는 데 사용됩니다. 또한 삭제되는 개체의 소멸자를 호출합니다.

delete pInt;
delete[] pArray;

메모리 누수를 방지하려면 "delete"를 사용하여 "new"를 사용하여 할당된 메모리를 할당 해제하는 것이 중요합니다. 그렇게 하지 않으면 프로그램이 시간이 지남에 따라 점점 더 많은 메모리를 사용하게 되어 프로그램이 충돌하거나 시스템이 불안정해질 수 있습니다.

new를 사용하여 할당되지 않은 포인터에서 delete를 사용하거나 동일한 포인터에서 delete를 여러 번 사용하면 정의되지 않은 동작이 발생한다는 점에 유의하는 것도 중요합니다.

 

 

 

반응형