我们经常把堆栈放在一起说,但是 堆和栈其实是不同的。二者的不同之处百度上很多,也可以查看我转载的文章栈,堆,全局,文字常量,代码区总结
堆和栈都有各自的大小,栈溢出指的是栈的使用超出了栈的大小,一个原因有两个:
1、 局部数组变量空间太大
局部变量是存储在栈中的,因此这个很好理解
解决这类问题的办法有两个,
一是增大栈空间,二是改用动态分配,使用堆(heap)而不是栈(stack)。
2、 函数出现无限递归调用,函数调用的时候会将一些运行相关的信息压栈,这个也就好理解了。