xref: /original-bsd/lib/libc/stdlib/calloc.c (revision 6c57d260)
1 /* @(#)calloc.c	4.1 (Berkeley) 12/21/80 */
2 /*	calloc - allocate and clear memory block
3 */
4 #define CHARPERINT (sizeof(int)/sizeof(char))
5 #define NULL 0
6 
7 char *
8 calloc(num, size)
9 unsigned num, size;
10 {
11 	register char *mp;
12 	char *malloc();
13 	register int *q;
14 	register m;
15 
16 	num *= size;
17 	mp = malloc(num);
18 	if(mp == NULL)
19 		return(NULL);
20 	q = (int *) mp;
21 	m = (num+CHARPERINT-1)/CHARPERINT;
22 	while(--m>=0)
23 		*q++ = 0;
24 	return(mp);
25 }
26 
27 cfree(p, num, size)
28 char *p;
29 unsigned num, size;
30 {
31 	free(p);
32 }
33