2017-10-14 33 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" 
相關問題