다음을 통해 공유


delete 연산자 (C++)

메모리 블록의 할당을 취소 합니다.

[::] delete cast-expression
[::] delete [ ] cast-expression

설명

cast-식 인수는 new 연산자와 함께 만들어진 개체에 할당 된 메모리 블록에 대한 포인터 여야 합니다. 삭제 연산자는 void 형식의 결과를 갖고 있고 그러므로 값을 반환 하지 않습니다. 예를 들면 다음과 같습니다.

CDialog* MyDialog = new CDialog;
// use MyDialog
delete MyDialog;

다음삭제 를 사용하여 에 할당되지 않은 개체에 대한 포인터는 예측할 수 없는 결과를 제공 합니다. 그러나 삭제를 0값과 함께 포인터에 사용할 수 있습니다. 이 조항은 다음을 의미합니다. 가 실패 발생 시 0을 반환 할 때, 실패한 함수의 결과는 무해합니다. 자세한 내용은 새 및 삭제 연산자 를 참조하십시오.

삭제 연산자는 배열을 포함한 기본 제공 형식에 사용될 수도 있습니다. 만약 pointer 가 배열을 가리킨다면, pointer 앞에 있는 빈 대괄호를 위치시킵니다.

int* set = new int[100];
//use set[]
delete [] set;

개체의 삭제 연산자를 사용하여 메모리의 할당을 취소 합니다. 개체가 삭제된 후에 포인터를 역참조 하는 프로그램은 충돌 또는 예기치 않은 결과가 있을 수 있습니다.

삭제 가 C++ 클래스 개체에 대한 메모리 할당을 취소하는데 사용될 때, 개체의 소멸자가 (개체가 소멸자를 가지고 있는 경우) 해당 개체의 메모리 할당 해제 되기 전에 호출됩니다.

연산자가 삭제 연산자가 l 값을 수정할 수 있을 경우, 개체를 삭제 한 후에는 해당 값이 정의 되지 않습니다.

예제

삭제 를 사용하는 예제를 보려면, 다음을 참조 하십시오. new 연산자.

참고 항목

참조

단항 연산자가 있는 식

C++ 키워드

삭제 작동 방식

삭제 사용

new 및 delete 연산자

operator delete 함수