Thanks for that I wasn't sure if it could've just been that the pointer happened to be pointing to old memory. I was clearing the vector but wanted to check that the memory was being deleted from the heap. I expected the pointers to be pointing to some other random values so thanks for your help. I didn't know if what I was doing was completely freeing the object memory.

I decided to use a vector of pointers as thought this would improve efficiency when I apply it to my more complex models - in these cases there can be hundreds or even thousands of individuals of the same class and I thought this could slow it down and I have run out of memory in the past. Is this right? I was also thinking of using a deque for this purpose as the number of instances would keep increasing and then flutuate.

Does it make sense to free the memory the way I've done it or should you really always use a destructor? If so do you need members that are pointers as I can't seem to delete individual members from an object.

Thanks