Implement `calloc{,Bytes,Array,Array0}` allocators

Herbert Valerio Riedel hvr at gnu.org
Sun Nov 30 08:42:20 UTC 2014


On 2014-11-29 at 17:05:58 +0100, Oleksandr Petrov wrote:
> There is a proposal [1] (with implemented revision) to implement
> zero-initialising
> versions
> of malloc{,Bytes,Array,Array0}
>
>    - Add calloc and callocBytes to Foreign.Marshal.Alloc.
>    - Add callocArray and callocArray0 to Foreign.Marshal.Array.
>
> The benefit is that you can allocate required amount of memory and be
> certain that it will be cleared
> (set with zeroes) before you use it.

+1

(Fwiw, it's not only a convenient combined operation but it also has
potentially less overhead by requiring only a single FFI-call to
calloc(3), instead of having to FFI-call twice into libc when doing
malloc(3)+memset(3))



More information about the Libraries mailing list