当前位置: 技术问答>linux和unix
关于linux的栈空间问题
来源: 互联网 发布时间:2016-02-23
本文导语: 写了一个程序测试栈空间情况 #include #include int main(void) { for (int i = 0; ; ++i) { printf ("%dn", i); alloca (1); } } 按理说栈空间默认为8M,但每次都没分配够8388608个字节就段错误...
写了一个程序测试栈空间情况
#include
#include
int
main(void)
{
for (int i = 0; ; ++i)
{
printf ("%dn", i);
alloca (1);
}
}
按理说栈空间默认为8M,但每次都没分配够8388608个字节就段错误了
而且每次最终分配的大小还不一样,测试了两次,分别为786209和785553
这是为什么?
#include
#include
int
main(void)
{
for (int i = 0; ; ++i)
{
printf ("%dn", i);
alloca (1);
}
}
按理说栈空间默认为8M,但每次都没分配够8388608个字节就段错误了
而且每次最终分配的大小还不一样,测试了两次,分别为786209和785553
这是为什么?
|
你运行这个程序本身也需要栈空间啊
再则,你分配一段空间,系统需要相应的一段空间来维护它.还要考虑字节对齐等等
你把你每次分配的空间大小设的大些,就能看出来了,你可以设1000看看
再则,你分配一段空间,系统需要相应的一段空间来维护它.还要考虑字节对齐等等
你把你每次分配的空间大小设的大些,就能看出来了,你可以设1000看看
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。