操作系统 - 程序的默认最大栈大小
2016-04-17 22:51
323 查看
因为面试两次遇到这个问题,其实我以前有问过,大家都说是取决于操作系统的,然后我这次做了一个实验, 发现我的系统 64 MacOS的最大使用8MB的栈空间。
测试代码:
在运行的时候,第一次设置一个断点,获得第一个i的地址,然后删掉断点,运行到栈溢出,也就是栈崩溃掉。
输出大约是:
这就是地址偏移量了,然后我们计算一下就可以了。
然后这个就是大约有8MB的大小。
其实应该是感觉操作系统而异的,有空我测试下其他的系统。
测试代码:
#include <iostream> using namespace std; void isOK(){ int i = 0; cout<<&i<<endl; isOK() } int main(){ isOK(); return 0; }
在运行的时候,第一次设置一个断点,获得第一个i的地址,然后删掉断点,运行到栈溢出,也就是栈崩溃掉。
输出大约是:
第一次: 0x7fff5fbff80c 最后一次: 0x7fff5f40096c
这就是地址偏移量了,然后我们计算一下就可以了。
(0x7fff5fbff80c - 0x7fff5f40096c)/1024 = 8187KB
然后这个就是大约有8MB的大小。
其实应该是感觉操作系统而异的,有空我测试下其他的系统。
相关文章推荐
- 只有程序员看的懂的面试圣经|如何拿下编程面试
- 下一次技术面试时要问的 3 个重要问题
- PHP程序员面试 切忌急功近利(更需要注重以后的发展)
- C++基于栈实现铁轨问题
- C语言栈的表示与实现实例详解
- C语言实现颠倒栈的方法
- 算法系列15天速成 第十天 栈
- C#常见算法面试题小结
- 一看就懂:图解C#中的值类型、引用类型、栈、堆、ref、out
- Array栈方法和队列方法的特点说明
- php 面试碰到过的问题 在此做下记录
- asp.net 面试+笔试题目第1/2页
- java数据结构之java实现栈
- 浅析栈区和堆区内存分配的区别
- 用Java代码实现栈数据结构的基本方法归纳
- 用PHP解决的一个栈的面试题
- 浅谈C#中堆和栈的区别(附上图解)
- JavaScript数据结构与算法之栈详解
- C语言之栈和堆(Stack && Heap)的优缺点及其使用区别
- Python实现栈的方法