placement new

pi = new (ptr) int; //placement new

括号里的参数ptr是一个指针,它指向一个内存缓冲器,placement new将在这个缓冲器上分配一个对象。Placement new的返回值是这个被构造对象的地址(比如括号中的传递参数)。placement new主要适用于:在对时间要求非常高的应用程序中,因为这些程序分配的时间是确定的;长时间运行而不被打断的程序;以及执行一个垃圾收集器 (garbage collector)。

简单来说,placement new是创建对象(即调用对象的构造函数),但是不分配内存,使用了现有的内存。

发表评论

电子邮件地址不会被公开。 必填项已用*标注