c - withArray 与 newArray

标签 c haskell ffi

在 Haskell FFI 中,用 withArray 分配的数组之间的本质区别是什么?和 newArray ?我在 c 中有与 newArray 一起使用的函数但与 withArray 的段错误.工作代码看起来有点像这样:

a <- newArray items
fficall a
free a

段错误的代码如下所示:
withArray items fficall

当 ffi 进入 blas 函数时会发生段错误。由于我不允许显示 c 代码,因此问题是,“请给我看一个示例 c 函数,它也与 withArray 发生段错误,但与 newArray 不同。”

最佳答案

据我所知,newArray最后打电话 malloc做配置,同时withArray电话allocaArray ,最终在 newAlignedPinnedByteArray# .

也许您的函数依赖于 malloc 分配的内存,例如通过尝试 reallocfree它?

关于c - withArray 与 newArray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7656253/

相关文章:

Haskell:从具有一百万个值的列表构建 IntMap 时,我应该得到 "Stack space overflow"吗?

python - 如何将 FFI 数组作为 c_void 指针传递给 nalgebra 的 DMatrix2?

C - 测量计算时间

c - C 中 fork() 的父级和子级

optimization - Haskell 平台 : nested functions and optimization

haskell - F# 有 Haskell 的 'newtype' 吗?

c - MPLAB IDE v2.05

c - mq_receive 消息太长

java - Rust stdout无法在Java应用程序中打印

c++ - 分配内存并调用 C++ 回调的 Rust 函数崩溃