B. looks closest to correct. I would use:
SomeClass* ptr = new(pmem)SomeClass();

4 Users have rated as useful.
Login to rate this answer.
It is B , provided pmem is an allocated pointer (meaning memory already allocated to it).
See this link for more explanation: http://www.geekinterview.com/question_details/16559

2 Users have rated as useful.
Login to rate this answer.
E. new (pmem, SomeClass);
Login to rate this answer.
B) new(pmem) SomeClass;

2 Users have rated as useful.
Login to rate this answer.
It is
B. new(pmem) SomeClass;
pmem points to the memory which shall be used.

1 User has rated as useful.
Login to rate this answer.
B
Where you use placement new, it is important to explicitly call the destructor for the object before re-using the memory.
Fred * fred = new(pmem) Fred();
...
fred->~Fred();
fred = 0;
George * george(pmem) George();
Login to rate this answer.