gpt4 book ai didi

haskell - unsafeRead 导致堆栈溢出

转载 作者:行者123 更新时间:2023-12-02 10:02:47 24 4
gpt4 key购买 nike

下面是一些在 ideone 处进行边界检查的代码.

运行成功,没有出现越界错误。

this代码,在第 34 行,我已将 readArray 更改为 unsafeRead,它仍然可以编译,但会因堆栈溢出而崩溃。

这是 GHC 错误还是我做错了什么?

最佳答案

unsafeRead 使用从 0 开始的索引,因此您必须调整读取索引,

elem <- unsafeRead arr (i-1)

或者更好的是,分配索引最小为 0 的数组

arr <- newArray (0,upperbound) maxBound

照原样,unsafeRead 从数组中的错误位置读取。

无关:我怀疑 ideone 使用 32 位 GHC,所以最好不要在那里运行 upperbound > 100000 的代码。

关于haskell - unsafeRead 导致堆栈溢出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10883939/

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