1169695Skan/* calloc -- allocate memory which has been initialized to zero. 2169695Skan This function is in the public domain. */ 3169695Skan 4169695Skan/* 5169695Skan 6169695Skan@deftypefn Supplemental void* calloc (size_t @var{nelem}, size_t @var{elsize}) 7169695Skan 8169695SkanUses @code{malloc} to allocate storage for @var{nelem} objects of 9169695Skan@var{elsize} bytes each, then zeros the memory. 10169695Skan 11169695Skan@end deftypefn 12169695Skan 13169695Skan*/ 14169695Skan 15169695Skan#include "ansidecl.h" 16169695Skan#include <stddef.h> 17169695Skan 18169695Skan/* For systems with larger pointers than ints, this must be declared. */ 19169695SkanPTR malloc (size_t); 20169695Skanvoid bzero (PTR, size_t); 21169695Skan 22169695SkanPTR 23169695Skancalloc (size_t nelem, size_t elsize) 24169695Skan{ 25169695Skan register PTR ptr; 26169695Skan 27169695Skan if (nelem == 0 || elsize == 0) 28169695Skan nelem = elsize = 1; 29169695Skan 30169695Skan ptr = malloc (nelem * elsize); 31169695Skan if (ptr) bzero (ptr, nelem * elsize); 32169695Skan 33169695Skan return ptr; 34169695Skan} 35