A: No.
While realloc() need to copy the allocation, this uses a bitwise copy operation, that will tear several C++ objects to shreds. C++ objects must be allowed to copy themselves. They employ their own copy constructor or assignment operator.
Besides of all, the heap that new uses might not be the similar as the heap that malloc() and realloc() use!