>>13
You don't even need to "waste skill". Just wrap all your dynamic memory usage to classes in C++ and it's very safe, very fast, and very easy to understand. Destructor handles freeing the memoy.
Allocate from stack most of the times, and wrap your wild pointers with unique_ptr or shared_ptr/weak_ptr, and you'll be very safe with minimum manual effort required.