内置式new (The Placement New Expression)

1.          概念描述

在已经分配的动态内存空间上使用 new 创建新的对象。这种形式的 new 表达式就是 placement new expression

 

2.          使用格式

new(place_address) type_specifier

        place_address ,已经开辟空间的指针

        type_specifier ,新分配对象的类型

 

3.          实例

int *pBuff  = new int[1000];

long *pb   = new(pBuff) long;     // 即将 pBuff 内的一块大小为 sizeof(long) 的内存区域的

                                                                 // 使用权给 pb 指向的对象。

 

4.          使用注意

        需要

#include<new>

        不需要

delete pb                    // 因为并没有为 pb 开辟一块内存。 pb 指向的对象只有使用权

如果使用

delete []pBuff;              // 意味着其内存空间上的所有对象都被 kill

你可能感兴趣的:(内置式new (The Placement New Expression))