が、私は最近、C++クラスを再初期化するために、new演算子の珍しい使用に走った、コードは次のとおりです。このコードが実行されるC++ 'new'演算子 - 使用モード?
#include <iostream>
struct Test { Test() { std::cout<<"Test Ctor\n"; } };
int main()
{
Test t ;
new (&t) Test;
return 0 ;
}
場合は、テストctorのは二回と呼ばれています。この場合、 'new'演算子は新しいメモリを割り当てるのではなく、メモリのソースとしてオブジェクトへのポインタを使用しているように見え、valgrindはメモリリークを確認しません。
誰かがこの「新しい」演算子の使用についていくつか光を当てることができますか?
それは['配置new']と呼ばれています(http://stackoverflow.com/questions/222557/cs-placement-new) –