在寫服務器程序的時候,經常會用到內存池,很多是在堆(heap)上預分配一大塊內存,用空閒鏈表的方式來實現內存的分配與回收。
在業務應用的時候,如果想用這預分配的內存來創建對象,就不能用通常的new了,而需要用到placement new構造,它可以構造對象到給出的內存上。
placement new的原型如下:
void *operator new( size_t, void *p ) throw() { return p; }
大概的使用流程類似下面的步驟:
C++中的引用
C++基礎基礎:C與C++的區別
C#中的委托
C++對C的增強
C/C++中的const
淺談 C++ 中的 new/delete 和 new[]/delete[]
C/C++中的時間操作
Linux C/C++(或標准C++或標准C)編程雜記