When an object is created without a pointer, memory is reserved at compile time, but when you declare an object with a pointer, memory is reserved at run time. Which is more efficent and the more traditional practice?