Yes, Ricks explanation is correct. In C++ the pointer is only the address of data and NOT
some data. So you need to allocate and free the data by yourself.
This has the advantage that the expensive memory allocation can finetuned by the programmer. The obvious advantage is when you use pointers as input for functions: no new object gets allocated. Another hugh advantage are type casts
which needing good understanding of the topic.