>> Either that or I'm not deleting properly and have a bunch of leaked memory.
That's why I'd suggest making a single class that handles the new and delete parts in the constructor and destructor, then as long as you create your instance of that class before you use the pointers and don't let it go out of scope until you are done, you don't have to worry about memory management in the rest of the code.