100bf4279Sespie /* calloc -- allocate memory which has been initialized to zero. 200bf4279Sespie This function is in the public domain. */ 39588ddcfSespie 49588ddcfSespie /* 59588ddcfSespie 69588ddcfSespie @deftypefn Supplemental void* calloc (size_t @var{nelem}, size_t @var{elsize}) 79588ddcfSespie 89588ddcfSespie Uses @code{malloc} to allocate storage for @var{nelem} objects of 99588ddcfSespie @var{elsize} bytes each, then zeros the memory. 109588ddcfSespie 119588ddcfSespie @end deftypefn 129588ddcfSespie 139588ddcfSespie */ 1400bf4279Sespie 1500bf4279Sespie #include "ansidecl.h" 1600bf4279Sespie #include <stddef.h> 1700bf4279Sespie 1800bf4279Sespie /* For systems with larger pointers than ints, this must be declared. */ 19*150b7e42Smiod PTR malloc (size_t); 20*150b7e42Smiod void bzero (PTR, size_t); 2100bf4279Sespie 2200bf4279Sespie PTR calloc(size_t nelem,size_t elsize)23*150b7e42Smiodcalloc (size_t nelem, size_t elsize) 2400bf4279Sespie { 2500bf4279Sespie register PTR ptr; 2600bf4279Sespie 2700bf4279Sespie if (nelem == 0 || elsize == 0) 2800bf4279Sespie nelem = elsize = 1; 2900bf4279Sespie 3000bf4279Sespie ptr = malloc (nelem * elsize); 3100bf4279Sespie if (ptr) bzero (ptr, nelem * elsize); 3200bf4279Sespie 3300bf4279Sespie return ptr; 3400bf4279Sespie } 35