zoukankan      html  css  js  c++  java
  • Stack Overflow Exception

    语言:标准C++

    IDE:vs2010  

    操作:递归搜索栅格图像时出现StackOverflow异常,图像大小为7397×4248共个31422456个像元。

    原因:程序运行时所进行的大量的递归调用所占堆栈超过了系统默认堆栈大小,引发栈溢出异常。

    保留堆栈和提交堆栈,指定虚拟内存中的总的堆栈分配,单位为字节,仅在生成exe文件时使用。

    保留堆栈:X86和X64的计算机默认保留堆栈大小为1MB,Itanium 芯片计算机为4MB;

    提交堆栈:对于 x86 和 x64 计算机,默认提交值为 4 KB。 在 Itanium 芯片组上,默认值为 16 KB。代表一次分配的物理内存量。越大程序越快,占用内存也越多,可能启动也越慢。

    解决:打开工程--属性--链接--系统--堆栈保留大小:修改到一个大于1M=1048576字节的数,我修改到了50000000,约为47.69MB,不再引发这个异常。

    参考:http://msdn.microsoft.com/zh-cn/library/8cxs58a6.aspx

    2011-11-05 11:25 

  • 相关阅读:
    English Dictionary site for ODE and OALD
    vmic environment
    makefile
    the diference between include and import
    windows 工具命令 cmd
    python namespace
    shell cmd args
    ROE, ROC
    IP
    链接及常用软件
  • 原文地址:https://www.cnblogs.com/yeahgis/p/2246337.html
Copyright © 2011-2022 走看看