calloc.c 1.2 KB
/*
=============================================================================
        Copyright (C) 1997-1999 NINTENDO Co.,Ltd.
        
        $RCSfile: calloc.c,v $
        $Revision: 1.1.1.1 $
        $Date: 2002/10/30 02:07:09 $
=============================================================================
関数名:calloc
-----------------------------------------------------------------------------
書式:  #include <malloc.h>
        void *calloc(size_t num, size_t size);
引数:  num 要素の個数
        size 要素のサイズ
戻り値:確保した領域の先頭ポインタ。
        確保に失敗したら NULL を返す。
説明:  InitHeap で確保した領域に size バイトの num 個の要素を持つ
        メモリブロックを確保する。
-----------------------------------------------------------------------------
*/
#include    <ultra64.h>
#include    "string.h"
#include    "malloc.h"
#include    "_malloc.h"

void *calloc(size_t num, size_t size)
{
    size_t i ;
    char *ret, *dmy ;

    if( (int)malloc_ptr == -1 ){
	return  NULL ;
    }

    if( (ret = _malloc(malloc_ptr, num * size)) == NULL ){
	return  NULL ;
    }

    /* 確保した領域を 0 で埋める */
    i = num * size;
    dmy = ret ;
    while( i-- ){
	*dmy++ = 0;
    }

    return ret ;
}