Compartilhar via


operator delete (<new>)

The function called by a delete expression to deallocate storage for an array of objects.

void operator delete[]( 
   void* _Ptr 
) throw( ); 
void operator delete[]( 
   void *,  
   void * 
) throw( ); 
void operator delete[]( 
   void* _Ptr,  
   const std::nothrow_t& 
) throw( );

Parameters

  • _Ptr
    The pointer whose value is to be rendered invalid by the deletion.

Remarks

The first function is called by an delete[] expression to render the value of _Ptr invalid. The function is replaceable because the program can define a function with this function signature that replaces the default version defined by the Standard C++ Library. The required behavior is to accept a value of _Ptr that is null or that was returned by an earlier call to operator new[](size_t). The default behavior for a null value of _Ptr is to do nothing. Any other value of _Ptr must be a value returned earlier by a call as previously described. The default behavior for such a nonnull value of _Ptr is to reclaim storage allocated by the earlier call. It is unspecified under what conditions part or all of such reclaimed storage is allocated by a subsequent call to operator new(size_t), or to any of calloc(size_t), malloc(size_t), or realloc(void*, size_t).

The second function is called by a placement delete[] expression corresponding to a new[] expression of the form new[](std::size_t). It does nothing.

The third function is called by a placement delete expression corresponding to a new[] expression of the form new[](std::size_t, const std::nothrow_t&). The program can define a function with this function signature that replaces the default version defined by the Standard C++ Library. The required behavior is to accept a value of _Ptr that is null or that was returned by an earlier call to operator new[](size_t). The default behavior is to evaluate delete[](_Ptr).

Example

See operator new[] for examples of the use of operator delete[].

Requirements

Header: <new>

Namespace: std