BSD 3 development
[unix-history] / usr / src / libc / gen / calloc.c
CommitLineData
18e5fa7e
BJ
1/* calloc - allocate and clear memory block
2*/
3#define CHARPERINT (sizeof(int)/sizeof(char))
4#define NULL 0
5
6char *
7calloc(num, size)
8unsigned num, size;
9{
10 register char *mp;
11 char *malloc();
12 register int *q;
13 register m;
14
15 num *= size;
16 mp = malloc(num);
17 if(mp == NULL)
18 return(NULL);
19 q = (int *) mp;
20 m = (num+CHARPERINT-1)/CHARPERINT;
21 while(--m>=0)
22 *q++ = 0;
23 return(mp);
24}
25
26cfree(p, num, size)
27char *p;
28unsigned num, size;
29{
30 free(p);
31}