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