一般的new运算符负责在heap堆中找到一个足以能够满足要求的内存块。
new运算符还有另一种变体:定位new运算符(placement new),它能够让程序员指定要使用的位置。既将new运算符用于提供了的地址。
定位new运算符在头文件中。
定位new运算符直接使用传递给它的地址,它不负责判断哪些内存单元已被使用,也不查找未使用的内存块。这将一些内存管理的负担交给了程序员。
一个例子:
下面用一个简单的程序来说明定位new的用法:
#include "new"
#include "iostream"
using namespace std;
int main() {
char buffer[512]; //chunk of memory内存池
int *p1, *p2, *p3, *p4;
//常规new:
p1 = new