当您听到堆栈溢出时,是否表示该堆栈最初具有1mb的容量,然后添加了更多项目...增加了它的大小,因此将堆栈的大小调整为2mb ...然后继续直到调整为10mb ...但是由于堆栈具有最大容量,它永远无法调整为11mb?
还是在堆栈级别没有这种限制,而是来自应用程序/程序。而且该限制可能会基于多种原因而波动。例如如果您的iPhone的内存不足,则仅允许10mb的堆栈,但是如果它具有1Gb的可用内存,则该应用程序将能够使用所有这些空间,因此最大堆栈容量将接近1Gb?
我的问题不同于链接的问题。这与应用程序的调用栈无关。而是纯粹是由谁来取消溢出的堆栈?并证明它是堆栈实现的一部分还是什么?
答案 0 :(得分:0)
基于安迪(Andy)提供的评论,
只要有限制,就可以从那里引发错误。 堆栈没有限制或引发错误的特定约定。虽然可以做到。
操作系统还可以施加不同的限制: