Commit | Line | Data |
---|---|---|
18e5fa7e BJ |
1 | /* calloc - allocate and clear memory block |
2 | */ | |
3 | #define CHARPERINT (sizeof(int)/sizeof(char)) | |
4 | #define NULL 0 | |
5 | ||
6 | char * | |
7 | calloc(num, size) | |
8 | unsigned 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 | ||
26 | cfree(p, num, size) | |
27 | char *p; | |
28 | unsigned num, size; | |
29 | { | |
30 | free(p); | |
31 | } |