Don't use memcpy with new/delete: It will almost never work. Anything with constructors normally isn't contiguous in memory, the alignment from new and malloc is different, and they don't necessarily even access the same heap.
Basically, use new and delete, and avoid the use of memset and memcpy, instead doing it properly (i.e. do proper intialization and properly overload copy constructors and assignment operators to perform deep copies).