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 연산자.