在 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
分配的内存,例如通过尝试 realloc
或 free
它?
关于c - withArray 与 newArray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7656253/