다음을 통해 공유


연산자 (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-value는 수정할 수 있습니다, 개체를 삭제 한 후 해당 값이 정의 되지 않습니다.

예제

사용 예에 대 한 삭제를 참조 하십시오 new 연산자.

참고 항목

참조

단항 연산자 식

C + + 키워드

작업을 삭제 하는 방법

Delete를 사용 하 여

새 운영자를 삭제 합니다.

delete 연산자 함수