the raw pointer is difficult to handle correctly, e.g. wrt. copying of objects.
it's much simpler and safer to use a well-tested abstraction such as std::vector
.
in short, don't needlessly reinvent the wheel – others have already created some superb wheels that you're not likely to match in quality or price