通常new负责在堆中找到一个足以满足需求的内存块。如果new运算符找不到请求的内存量,C++会让new返回空指针(最初10年中),但现在会引发异常std::bad_alloc。
定位new运算符(使用时要包含头文件<new>),能让指定需要使用的位置。
当定位new运算符指定的内存是在静态内存中时,不可用delete释放。delete:用于这样的指针,指向常规new运算符分配的内存。静态内存处在delete管辖区域外。
有关new运算符的重载:
void* operator new(std::size_t);
void* operator new[](std::size_t);
void operator delete(void *);
void operator delete[](void *);