Frequently asked questions
Q) Can you remind me about the new
keyword and memory leaks?
A) When we use memory on the free store using the new
keyword, it persists even when the function it was created in has returned and all the local variables are gone. When we are done with using memory on the free store, we must release it. So, if we use memory on the free store that we want to persist beyond the life of a function, we must make sure to keep a pointer to it or we will have leaked memory. It would be like putting all our belongings in our house and then forgetting where we live! When we return the zombies
array from createHorde
, it is like passing the relay baton (memory address) from createHorde
to main
. It’s like saying, OK, here is your horde of zombies; they are your responsibility now. And, we wouldn’t want any leaked zombies running around in our RAM! So, we must remember to call delete
on pointers to dynamically allocate memory.