Dr. Dobb's Journal May 1997
class Foo {
public:
Foo();
~Foo();
};
Foo *pBar = (Foo*) malloc(10*sizeof(Foo));
for (int i = 0; i < 10; i++)
new (pBar+i) Foo;// "placement new"
pBar = (Foo*) realloc(pBar, 11*sizeof(Foo));
new (pBar+10) Foo; // "placement new"
for (int i = 9; i >= 0; i--)
(pBar+i)->Foo::~Foo();
free(pBar);