Haskell Core Libraries (base package)ParentContentsIndex
Foreign.Marshal.Alloc
Portability portable
Stability provisional
Maintainer ffi@haskell.org
Description
Marshalling support: basic routines for memory allocation
Synopsis
malloc :: (Storable a) => IO (Ptr a)
mallocBytes :: Int -> IO (Ptr a)
alloca :: (Storable a) => (Ptr a -> IO b) -> IO b
allocaBytes :: Int -> (Ptr a -> IO b) -> IO b
realloc :: (Storable b) => Ptr a -> IO (Ptr b)
reallocBytes :: Ptr a -> Int -> IO (Ptr a)
free :: Ptr a -> IO ()
Allocation
malloc :: (Storable a) => IO (Ptr a)
Allocate space for storable type. The size of the area allocated is determined by the sizeOf method from the instance of Storable for the appropriate type.
mallocBytes :: Int -> IO (Ptr a)
Allocate given number of bytes of storage, equivalent to C's malloc().
alloca :: (Storable a) => (Ptr a -> IO b) -> IO b

Temporarily allocate space for a storable type.

  • the pointer passed as an argument to the function must not escape from this function; in other words, in alloca f the allocated storage must not be used after f returns

allocaBytes :: Int -> (Ptr a -> IO b) -> IO b

Temporarily allocate the given number of bytes of storage.

  • the pointer passed as an argument to the function must not escape from this function; in other words, in allocaBytes n f the allocated storage must not be used after f returns

realloc :: (Storable b) => Ptr a -> IO (Ptr b)
Adjust a malloc'ed storage area to the given size of the required type (corresponds to C's realloc()).
reallocBytes :: Ptr a -> Int -> IO (Ptr a)
Adjust a malloc'ed storage area to the given size (equivalent to C's realloc()).
free :: Ptr a -> IO ()
Free malloc'ed storage (equivalent to C's free())
Produced by Haddock version 0.4