If I remember, there are ways you can allocate space to an array but I'd have to look it up and it's not very clean if I remember correctly or too common.
EDIT: Apparently it was a hack using malloc...Go with vector :/
Use memcpy to copy the memory more efficiently. And it's wasteful to only add one element when resizing. It's better to double it. And you're deleting the array you just allocated in the last line! Try something like this:
std::copy() should be preferred to realloc and memcpy for C++ apps, particularly because neither of the above are safe for arrays of objects (POD types are fine though). Although at that point, for large sizes, I'd use a deque.