1*1956Swnj /* @(#)calloc.c 4.1 (Berkeley) 12/21/80 */ 2*1956Swnj /* calloc - allocate and clear memory block 3*1956Swnj */ 4*1956Swnj #define CHARPERINT (sizeof(int)/sizeof(char)) 5*1956Swnj #define NULL 0 6*1956Swnj 7*1956Swnj char * 8*1956Swnj calloc(num, size) 9*1956Swnj unsigned num, size; 10*1956Swnj { 11*1956Swnj register char *mp; 12*1956Swnj char *malloc(); 13*1956Swnj register int *q; 14*1956Swnj register m; 15*1956Swnj 16*1956Swnj num *= size; 17*1956Swnj mp = malloc(num); 18*1956Swnj if(mp == NULL) 19*1956Swnj return(NULL); 20*1956Swnj q = (int *) mp; 21*1956Swnj m = (num+CHARPERINT-1)/CHARPERINT; 22*1956Swnj while(--m>=0) 23*1956Swnj *q++ = 0; 24*1956Swnj return(mp); 25*1956Swnj } 26*1956Swnj 27*1956Swnj cfree(p, num, size) 28*1956Swnj char *p; 29*1956Swnj unsigned num, size; 30*1956Swnj { 31*1956Swnj free(p); 32*1956Swnj } 33