2017-10-14 34 views
1

create来自Data.ByteString.Internal,声明它需要Ptr Word8才能创建ByteString。我猜这就像是对字节串头部的引用。然而,我不确定我应该用什么来创建一个新的指针 - 我相当肯定它没有用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" 
相关问题