gpt4 book ai didi

ios - 如何在递归算法中保护 IOS 免受 EXC_BAD_ACCESS

转载 作者:可可西里 更新时间:2023-11-01 06:16:54 30 4
gpt4 key购买 nike

我正在尝试进行一些高度递归的模拟和数学运算,在某些边缘情况下,我会溢出调用堆栈并获得 EXC_BAD_ACCESS 信号。将算法更改为迭代形式是不可行的,因为它是很多遗留代码。并且递归深度限制没有用,因为内存的使用是不确定的。

有没有办法检测可用堆栈的数量,以便我可以优雅地取消操作?

是否可以实现一种我可以持续检查未被覆盖的 Stack Canary 类型?

最佳答案

如果线程安全不是问题,请使用静态变量。像这样:

int recurse(int something) {
static int depth = 0;
++depth;
if (depth > MAX_DEPTH) { // bail }

...
int result = recurse(...);
--depth;
return result;
}

如果线程安全是一个问题,您可以将 depth 作为参数传递。

关于ios - 如何在递归算法中保护 IOS 免受 EXC_BAD_ACCESS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8362655/

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