That's a job for smart pointer:
class partialCopy {
int a;
std::shared_ptr<int, std::default_delete<int[]> > array;
};
This way you don't need to worry about these things - default generated special member functions will do the right thing for you.