|
|
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.