summaryrefslogtreecommitdiff
path: root/dmake/dbug/malloc/calloc.c
blob: 12cd933930e185cf2db0b40b1e015d04662b9097 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
/*
 * (c) Copyright 1990 Conor P. Cahill (uunet!virtech!cpcahil).  
 * You may copy, distribute, and use this software as long as this
 * copyright statement is not removed.
 */
#include <stdio.h>

/*
 * Function:	calloc()
 *
 * Purpose:	to allocate and nullify a data area
 *
 * Arguments:	nelem	- number of elements
 *		elsize	- size of each element
 *
 * Returns:	NULL	- if malloc fails
 *		or pointer to allocated space
 *
 * Narrative:	determine size of area to malloc
 *		malloc area.
 *		if malloc succeeds
 *		    fill area with nulls
 *		return ptr to malloc'd region
 */
#ifndef lint
static char rcs_header[] = "$Id: calloc.c,v 1.2 2006-07-25 10:07:11 rt Exp $";
#endif

char *
calloc(nelem,elsize)
    unsigned int 	  nelem;
    unsigned int 	  elsize;
{
    char		* malloc();
    char		* memset();
    char		* ptr;
    unsigned int	  size;

    size = elsize * nelem;

    if( (ptr = malloc(size)) != NULL)
    {
        (void) memset(ptr,'\0',(int)size);
    }

    return(ptr);
}