new 的四种使用方法,以及特性

new负责在堆heap中找到一个足以满足要求的内存。new还有另外一种变体,被称为定位(placement) new 运算符,能够指定使用具体的内存位置。可以用这个特性来设置其内存管理章程,处理需要通过特定地址进行访问的硬件或在特定位置创建对象。

// C++ primer plus P320
#include
struct chaff
{
	char dross[20];
	int slag;
};

char buffer1[50];
char buffer2[50];
int main()
{
	chaff *p1,*p2;
	int *p3,*p4;
	p1 = new chaff;
	p3 = new int;
	
	// 定位new运算符
	p2 = new (buffer1) chaff; 	// 指定使用需要使用的位置,
							  	// 即为p2指向 buffer1的内存位置
	p4 = new (buffer2) int[20];
}

你可能感兴趣的:(C++)