SCCS-vsn: lib/libc/stdlib/calloc.c 4.2
-/* @(#)calloc.c 4.1 (Berkeley) %G% */
-/* calloc - allocate and clear memory block
-*/
-#define CHARPERINT (sizeof(int)/sizeof(char))
-#define NULL 0
+/* @(#)calloc.c 4.2 (Berkeley) %G% */
+/*
+ * Calloc - allocate and clear memory block
+ */
+ register unsigned num, size;
- register char *mp;
- char *malloc();
- register int *q;
- register m;
+ extern char *malloc();
+ register char *p;
- num *= size;
- mp = malloc(num);
- if(mp == NULL)
- return(NULL);
- q = (int *) mp;
- m = (num+CHARPERINT-1)/CHARPERINT;
- while(--m>=0)
- *q++ = 0;
- return(mp);
+ size *= num;
+ if (p = malloc(size))
+ bzero(p, size);
+ return (p);
-char *p;
-unsigned num, size;
+ char *p;
+ unsigned num;
+ unsigned size;