递归调用造成堆栈溢出,该如何解决?堆栈溢出

2小时前 (17:58:53)阅读2回复0
xxhh
xxhh
  • 管理员
  • 注册排名4
  • 经验值358035
  • 级别管理员
  • 主题71607
  • 回复0
楼主
递回调用造成堆栈溢出,溢出的意思就是越界,操作系统会给每个进程分配一个最大上限的堆栈空间,假如超过了这个内存空间大小程序就会coredump,就像你使用int *pi = new int[100000000];会崩溃一样,因为这里堆溢出了。操作系统分配给一个进程的栈空间是2M,堆空间在32位机器上是4G。
  1. 递回调用造成堆栈溢出,该如何解决?

递回调用造成堆栈溢出,该如何解决?

溢出的意思就是越界,操作系统会给每个进程分配一个最大上限的堆栈空间,假如超过了这个内存空间大小程序就会coredump,就像你使用int *pi = new int[100000000];会崩溃一样,因为这里堆溢出了。

递归调用造成堆栈溢出,该如何解决?堆栈溢出

操作系统分配给一个进程的栈空间是2M,堆空间在32位机器上是4G。假如你的进程的栈空间使用超过了2M就会栈溢出,堆使用超过4G就会堆溢出。

0
回帖

递归调用造成堆栈溢出,该如何解决?堆栈溢出 期待您的回复!

取消