Welcome to the world of linked lists. The use of pointers can be a long and complex issue, particually if you have no experience of using them. I haven't got time to go into it and explain all, but if you look at this web page it explains the basic principles quite well (this web page is nothing to do with me - I just googled it!).http://home.swbell.net/mck9/cobol/tech/linklist.html
We use linked lists A LOT in our product where I work, and they can take a bit getting used to. As well knowing about the advantages of pointers, it's also good to know about the disadvantages too. If you don't manage your pointers properly you can get memory leaks all over the place - watch out for this!
What you are doing is managing the memory your program uses, rather than let the operating system do it for you. You are allocating memory dynamically, and this is generally more efficient.
See if this link gives you what you want to know, and perhaps other forum users can add more details too.