我读过Data.Vector.Storable将它的元素存储在一个连续的内存区域中。我一直期待这Vector
将是一个实例,Foreign.Storable
或者至少会有一个函数:: Vector a -> Ptr (Vector a)
,但只有unsafeToForeignPtr0 :: Storable a => Vector a -> (ForeignPtr a, Int)
.
我的 Haskell 代码生成了一个列表,Foreign.Storable
我想从 C 代码中访问这个列表。执行此操作的数据类型是否Vector.Storable
正确,如果是,我应该如何从 C 端访问它的元素?