delete

From RAD Studio
Jump to: navigation, search

Go Up to Keywords, Alphabetical Listing Index


Category

Operators, C++ Specific Keywords

Syntax

 void operator delete(void *ptr) throw();
 void operator delete(void *ptr, const std::nothrow_t&) throw();
 void operator delete[](void *ptr) throw();
 void operator delete[](void *ptr, const std::nothrow_t &) throw();
 void operator delete(void *ptr, void *) throw();   // Placement form
 void operator delete[](void *ptr, void *) throw(); // Placement form

Description

The delete operator deallocates a memory block allocated by a previous call to new. It is similar but superior to the standard library function free.

You should use the delete operator to remove all memory that has been allocated by the new operator. Failure to free memory can result in memory leaks.

The default placement forms of operator delete are reserved and cannot be redefined. The default placement delete operator performs no action (since no memory was allocated by the default placement new operator). If you overload the placement version of operator new, it is a good idea (though not strictly required) to provide the overload the placement delete operator with the corresponding signature.

See Also