一、局部数组过大。当函数内部的数组过大时,有可能导致堆栈溢出。
二、递归调用层次太多。递归函数在运行时会执行压栈操作,当压栈次数太多时,也会导致堆栈溢出。
三、指针或数组越界。这种情况最常见,例如进行字符串拷贝,或处理用户输入等等。
?
解决这类问题的办法有两个,
? ? ? 一是增大栈空间,二是改用动态分配,使用堆(heap)而不是栈(stack)。?
一、局部数组过大。当函数内部的数组过大时,有可能导致堆栈溢出。
二、递归调用层次太多。递归函数在运行时会执行压栈操作,当压栈次数太多时,也会导致堆栈溢出。
三、指针或数组越界。这种情况最常见,例如进行字符串拷贝,或处理用户输入等等。
?
解决这类问题的办法有两个,
? ? ? 一是增大栈空间,二是改用动态分配,使用堆(heap)而不是栈(stack)。?
评论 (0)