Erm, by default... By default you should never use realloc in C++ since it can destroy objects or make them not work the way they should.
But sure, if you know the objects will be fine after using realloc, you can use it. No one is forcing you not to.
But the ideal solution (at least on Windows) would be to simply expand the virtual memory beyond the end of the array so moving isn't necessary (as I did with my CArray experiment).

