1
create(Data.ByteString.Internal)は、ByteStringを作成するためにPtr Word8
が必要であると述べています。私はこれが、バイトの頭か何かの頭の参照のようなものだと推測しています。しかし、私は新しいポインタを作成するために何を使うべきか分かりません。nullPtrで正しく実行されていないと私は確信しています。ByteStringのためにPtr Word8を作成する方法
create(Data.ByteString.Internal)は、ByteStringを作成するためにPtr Word8
が必要であると述べています。私はこれが、バイトの頭か何かの頭の参照のようなものだと推測しています。しかし、私は新しいポインタを作成するために何を使うべきか分かりません。nullPtrで正しく実行されていないと私は確信しています。ByteStringのためにPtr Word8を作成する方法
いいえ、create
はあなたに埋めるためにメモリへのポインタを与える:
create :: Int -> (Ptr Word8 -> IO()) -> IO ByteString
最初の引数は作成するためにバイト文字列の長さで、第二は、バイト文字列を満たす関数です。基本的にcreate
は、指定されたサイズのメモリバッファを割り当て、バッファへのポインタで関数を呼び出します。使用例:
> create 5 $ \ptr -> pokeArray ptr [65, 66, 67, 68, 69]
"ABCDE"