Charlie,
Yup. You also need to use the heap for large objects that would consume too much stack space.
>So, what you are saying is: Use the stack for objects created in a function that will go out of scope when the function ends and use the heap for objects that will remain for a while, like an application object?