栈默认有多大
2015-10-23 20:21
211 查看
Visual C++ 编译器选项 /F(设置堆栈大小) 请参见 发送反馈意见 设置程序堆栈大小(以字节为单位)。 /F[ ]number 参数 number 堆栈大小(以字节为单位)。 备注 如果不使用此选项,堆栈大小默认为 1 MB。number 参数可以用十进制或 C 语言表示法表示。参数的范围可以在 1 到链接器接受的最大堆栈大小之间。链接器将指定值向上舍入为最接近的 4 个字节。/F 和 number 之间的空格可选的。 如果程序获得堆栈溢出消息,则可能需要增加堆栈大小。 也可通过下列内容设置堆栈大小: 使用 /STACK 链接器选项。有关更多信息,请参见 /STACK。 对 .exe 文件使用 EDITBIN。有关更多信息,请参见 EDITBIN 参考。 在 Visual Studio 开发环境中设置此编译器选项 打开此项目的“属性页”对话框。有关详细信息,请参见如何:打开项目属性页。 单击“C/C++”文件夹。 单击“命令行”属性页。 在“附加选项”框中键入编译器选项。 以编程方式设置此编译器选项 请参见 AdditionalOptions。 请参见 概念 编译器选项 设置编译器选项 发送反馈意见,就此主题向 Microsoft 发送反馈意见。 看来默认大小是1MB,不是我上面说的4MB |
对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理 |
youyou1912 youyou1912 本版等级: | #12 得分:5回复于: 2013-04-25 18:03:38 栈和线程相关, 默认1MB预留, 初次递交8KB, 自动增长, 具体使用要看线程调用栈了. 所以如果进程中有N个线程. 默认情况下, 有N*1MB的栈预留空间, 和小于这个数字的实际使用. 堆和Heap管理有关, 默认存在系统堆和CRT堆. 具体大小取决于程序本身对内存的分配和使用, 可以调用HeapSize看实际使用大小. 另外还有虚拟内存, 独立于对堆外, 直接通过VirtualAlloc预留或分配. 也属于进程动态分配的内存. |
相关文章推荐
- oracle数据库的导入和导出
- 两天以来对plsqldev操作的记忆
- 1021. 个位数统计 (15)
- Windows Server AppFabric与WCF
- Windows Server AppFabric与WCF
- 指针数组、数组指针、指针函数、函数指针、函数指针数组、对象指针解析
- 代码能不能不要写得这么烂?!
- HiveServer2 的jdbc方式创建udf的修改(add jar 最好不要使用),否则会造成异常: java.sql.SQLException: Error while processing statement: null
- 图像处理中的数学原理详解(Part5) ——傅立叶级数的概念2
- 冲击GCT——考试法宝
- java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver
- 算法计划
- 熟练使用map div2 B. Misha and Changing Handles
- HDU 1241油田问题(广搜)
- javascript基础之三(对象详解)
- WCF 服务应用程序与 服务库之间的区别
- WCF 服务应用程序与 服务库之间的区别
- 加密解密
- 【UVA1331】关于最优三角剖分
- 你得首先理解领域需求