gpt4 book ai didi

c++ - 我可以用尽堆栈吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:03:14 24 4
gpt4 key购买 nike

我知道通过使用 operator new() 我可以耗尽内存并且我知道如何保护自己免受这种情况的影响,但是我可以通过在堆栈上创建对象来耗尽内存吗?如果是,我如何检查对象创建是否成功?
谢谢。

最佳答案

你可以耗尽堆栈。在这种情况下,您的程序可能会立即因堆栈溢出异常而崩溃。

堆栈也有大小,因此您可以将其简单地视为一 block 内存。例如,函数内部的变量在这里分配。此外,当您调用一个函数时,调用本身存储在堆栈中(我知道这非常简单)。因此,如果您进行无限递归(如另一个答案中所述),那么堆栈会被填满但不会清空(这发生在函数返回时,有关调用的信息被“删除”)所以有时您会填满整个空间分配给您的程序堆栈,您的应用程序将崩溃。

请注意,有多种方法可以确定/更改堆栈的大小。

关于c++ - 我可以用尽堆栈吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3342409/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com