ack/lang/cem/libcc/gen/calloc.c
1987-01-27 15:57:55 +00:00

17 lines
360 B
C

#define ALIGN(sz) (((sz) + (sizeof(long) - 1) / sizeof(long)) * sizeof(long))
char *
calloc(nelem, elsize)
unsigned int nelem, elsize;
{
register char *p;
register long *q;
unsigned int size = ALIGN(nelem * elsize);
extern char *malloc();
p = malloc(size);
if (p == 0) return 0;
q = (long *) (p + size);
while ((char *) q > p) *--q = 0;
return p;
}