home *** CD-ROM | disk | FTP | other *** search
/ minnie.tuhs.org / unixen.tar / unixen / PDP-11 / Trees / V7 / usr / src / libc / gen / calloc.c < prev    next >
Encoding:
C/C++ Source or Header  |  1979-01-10  |  449 b   |  32 lines

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