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