关于编译器的栈的大小的设置见 VS2003編译器使用技巧大全中
栈的大小有一个默认的值,局部变量,调用函数的现场保存信息都存于栈上.
通过情况下,栈溢出时,程序仍可以顺利运行...
1:当囿很深的递归时,随着函数层数的增加,栈会被用完,这时,函数的返回值信息便会写到栈外的空间. 栈个的空间的地方可以被别的函数改写.这样,原來的函数的返回地址就会被改写!!!,函数被返回到黑客定制的地方!
2:同理,当在栈上分配的空间过大时,超出去的空间的数据就会被改写.