Quite often we don't know how big things like arrays should be until AFTER we have compiled the program. We might want to find such things out at runtime, and then create custom-sized arrays. We can do this with dynamic memory allocation, which is helped with the use of pointers, and the new() and delete() functions, to organise our use of memory effectively.
http://andyjamesduncan.wordpress.com
...
https://www.youtube.com/watch?v=_XHg6zKbm40