For the record in case someone looks at this thread:
I agree that the default setting of the heap and stack works well (this is really an issue if one is running an OS). My problem was caused by a function that had local variables that were consuming a huge amount of stack space. The problem was not easy to find because the data corruption was happening randomly on function calls (but not necessarily on the offending one). I was able to find the problem by stepping through the program and monitoring the stack pointer. When I steppedĀ in the offending function, I saw a huge jump in the stack.