Not only that, calloc often comes from fresh 0-initialized memory that is just allocated when forced in the memory manager, so it can often get zeroed for free.

-Edward

On Sun, Nov 30, 2014 at 7:42 PM, Herbert Valerio Riedel <hvr@gnu.org> wrote:
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))

_______________________________________________
Libraries mailing list
Libraries@haskell.org
http://www.haskell.org/mailman/listinfo/libraries