If the aforementioned check passes, you can also write a magic value word x bytes below the stack (say 100H), and on program termination check if it hasn't changed. That way you will get an early warning if your stack grows large.
(By the way, for C maybe 100H is too little an amount, since it uses the stack so much. Would have to try it and see.)