永发信息网

编译器可以修改栈大小,这个值可以随意设置吗

答案:1  悬赏:30  手机版
解决时间 2021-04-05 08:03
  • 提问者网友:捧腹剧
  • 2021-04-04 14:02
编译器可以修改栈大小,这个值可以随意设置吗
最佳答案
  • 五星知识达人网友:春色三分
  • 2021-04-04 14:44
你说的那个默认1M的栈,应该指的是call stack(函数调用使用的栈)。这个栈用来存放函数调用时所传递的参数(并非所有参数都通过栈传递),栈指针,return address,寄存器的备份,还有每层函数的local variable。
1M大多数情况都是够用的,如果用完可能会发生非法访问等错误。可能会用完1M的情况:某个被调用的函数申请了一个很大的local variable,比如直接在栈上开个大数组之类的;还有就是递归调用,递归层数多了后很容易就用完1M。所以递归一般不要乱用。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯