...
| Allocator | Deallocator |
|---|---|
operator new()/new | operator delete()/delete |
operator new[]()/new[] | operator delete[]()/delete[] |
placement operator new() | N/A |
allocator<T>::allocate() |
|
std::malloc(), std::calloc(),std::realloc() | std::free() |
std::get_temporary_buffer() | std::return_temporary_buffer() |
| Page properties | ||
|---|---|---|
| ||
While the wording for |
Passing a pointer value to an inappropriate deallocation function can result in undefined behavior.
...
| [Dowd 2007] | "Attacking delete and delete [] in C++" | ||
| [Henricson 1997] | Rule 8.1, delete should only be used with newRule 8.2, delete [] should only be used with new [] | ||
| [ISO/IEC 14882-2014] | Subclause 5.3.5, "Delete" | ||
| [Meyers 2005] | Item 16, "Use the Same Form in Corresponding Uses of new and delete" | ||
| [Seacord 2013b] | Chapter 4, "Dynamic Memory Management" | ||
| [Viega 05] | "Doubly Freeing Memory" | ||
...