C语言堆栈大小限制

问题

1.默认栈大小是多少?
2.能否查看某个线程的栈大小?
3.栈最大单一使用量,单个局部变量最大大小?

查看栈默认大小

ulimit -s	#只查看栈默认限制大小,单位Kbytes
ulimit -a	#查看当前所有的资源限制,stack 字段,单位Kbytes

示例:输入ulimit -s

/ # ulimit -s
8192

示例:输入ulimit -a
在这里插入图片描述
注:实际使用时,比如默认8192Kbytes = 8M,实际申请内存达不到8M。

原因:栈(stack)上申请内存大小限制问题
https://blog.csdn.net/boyixuanbo/article/details/52864954

栈最大单一使用量

注:栈最大单一使用量最好不要超过10000个字节。(coverity检测会提醒报错)

参考资料

栈(stack)上申请内存大小限制问题
https://blog.csdn.net/boyixuanbo/article/details/52864954

C语言申请内存时堆栈大小限制
https://blog.csdn.net/u010144805/article/details/79462418

C语言堆栈入门——堆和栈的区别
https://www.cnblogs.com/jiahuafu/p/8575044.html


版权声明:本文为mayue_web原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。