C++中placement new操作
1、代码:
#include <iostream>
using namespace std;
struct chaff {
char dross[20];
int slap;
};
char buffer1[50];
char buffer2[500];
int main() {
chaff *p1, *p2;
int *p3, *p4;
p1 = new chaff;
p3 = new int[20];
p2 = new(buffer1)chaff;
p4 = new(buffer2)int[20];
p4[0] = 3;
return 0;
}
2、调试:
在ubuntu中,使用gdb调试如下:
3、结论
此处代码中,使用placement new将对象在指定的内存区域开辟,而不一定是堆上。