This function allocates memory in a similar manner to the
standard C "calloc" function, but with improved security
(against memory leaks, etc.) and with error reporting. It also
fills the allocated memory with zeros.
Like astMallocastMalloc, it allows zero-sized memory allocation
(without error), resulting in a NULL returned pointer value.