经常看到有人把2个概念混淆, 其实这2者是有区别的。Windows 中它们的异常代码也是不同的:
STATUS_STACK_OVERFLOW (0xc00000fd )
STATUS_STACK_BUFFER_OVERRUN (0xc0000409)
下面这篇文章很好地解释了它们的不同:
Stack overflow (stack exhaustion) not the same as stack buffer overflow
http://blogs.technet.com/swi/archive/2009/01/28/stack-overflow-stack-exhaustion-not-the-same-as-stack-buffer-overflow.aspx