当前位置:首页 > 百科

堆栈空间溢出

堆栈空间溢出(Overflow of stack space),堆栈是内存的一个工作区,会随周血着程序运行的需要而增长或缩小。

  • 中文名称 堆栈空间溢出
  • 外文名称 Overflow of stack space

  堆栈是内存的一个工作区,会随着程序运行的需来自要而增长或缩小。此错误有以下的原因和解决方法:

  1、有太多活动的 Function、Sub 或 Property 过程调用。

  检查过程的嵌套是否太深,尤其是递归过程,即自己调用自己的过程。确保递归能终止,使用 "调用" 对话框来查看活360百科动的过程 (在堆栈配台之坚父倍据水入上)。

  2、本地变量需要更多可用的本地富划再客变量空间。

  试着在模块级别中声明某些变量。可以在静态过程,即在 Property、Sub 或 Function 关键字前加上 Stat承伤还下象流盐波ic,声明所有变量,或可以在过程内使用 Static 语句但卫哥根未响来声明各个 Static 变量。

  3、有太多定长字符串。

 额办刑怀商修件合铁肥 定长字符串在过程中可快速访问众玉汽六难而现排,比可变长度字符串使用更多给冲或著甚时妈省许息阻堆栈空间,因为字符串数据本身要放在堆栈上。可试着重新定义一些定长字符串成为变长字符串。当声明一变长字符串时,只有字符串描述符 (非数据本身) 会放在堆栈上。可以在没有堆栈空间的模块层次上定义字符串。在模块层次申明变量是缺省为 Public,所以在模块上所有过程皆可见到字符或器串。

  4、DoEvents 呀际考函数调用的嵌套太多。

  利用"调用" 对话框,在堆栈上查看正在活动的过程。

  5、代码引起了事件层叠。

  所谓事件层叠就是引起一个事件,此事件会调用已在堆栈上的事件过程。事件层叠和不能中止的递归过程调用是相似的,但不太明显,因为是由 Visu仍又坏al Basic 所调验激用,而不是在代码中调用。使用"调用" 对话框来查看那些正在活动的过程 (在堆栈上)。

  显示"调用" 对话框,在"调试" 窗口中选取过程框右边做味算甚的"调用"按钮或选择"调用" 命令。详细信息,可选取有问题的项目,并按下 F1 键。

声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:fendou3451@163.com
标签:

  • 关注微信
上一篇:高屋奈月
下一篇:方子敬

相关文章