2017-10-14 9 views
1

create(Data.ByteString.Internal)は、ByteStringを作成するためにPtr Word8が必要であると述べています。私はこれが、バイトの頭か何かの頭の参照のようなものだと推測しています。しかし、私は新しいポインタを作成するために何を使うべきか分かりません。nullPtrで正しく実行されていないと私は確信しています。ByteStringのためにPtr Word8を作成する方法

答えて

4

いいえ、createはあなたに埋めるためにメモリへのポインタを与える:

create :: Int -> (Ptr Word8 -> IO()) -> IO ByteString 

最初の引数は作成するためにバイト文字列の長さで、第二は、バイト文字列を満たす関数です。基本的にcreateは、指定されたサイズのメモリバッファを割り当て、バッファへのポインタで関数を呼び出します。使用例:

> create 5 $ \ptr -> pokeArray ptr [65, 66, 67, 68, 69] 
"ABCDE" 
関連する問題