4
Haskellのinline-cのCブロックからリストまたは配列を取得するにはどうすればよいですか?つまり、Cで複雑なデータを構築し、Haskellでそれを処理する方法です。このような 何か:Haskellのinline-cでCブロックからリストまたは配列を返すには?
foo :: IO [Int]
foo = do
what? <- [C.block| <what?> {
ints = calloc(10, sizeof(int));
// ...
return <what?>;
} |]
return <what?>
データがコピーされ、割り当てられたメモリを解放できると想定するのは安全でしょうか? – Igor
@Igor 'peekArray'で、はい。 'unsafeFromForeignPtr'では、noです。 –
@Igor PS、[mallocとHaskellのバインディングはすでに存在します](https://hackage.haskell.org/package/base-4.9.0.0/docs/Foreign-Marshal-Array.html#v:callocArray) 。 –