|
|
1.1 root 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: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.