First, you have to find the object you want to remove:
std::find_if
is good for this, but if it is classwork, they
may expect you to write your own implementation of a linear
search. Once you've found the entry, you delete
the pointer,
and either set it to null (and ensure that all other logic works
correctly when there are null pointers in the array), or shift
all of the following entries down one. (std::copy
could be
used for the shift.) Of course, if you shift, you'll also have
to keep track of where the valid entries in the array end.
There's not really any reason to create a new array when removing objects. Just keep track of the logical end of the array.