メモリ割り当て(ゼロ初期化付き)を行います。
[所属]
標準ライブラリ
[指定形式]
#include <stdlib.h>
void    *calloc(size_t nmemb, size_t size);
[戻り値]
領域の割り付けに成功した場合,その領域へのポインタを返します。割り付けができなかった場合,nullポインタを返します。
[詳細説明]
大きさがsizeの,要素数nmemb個の配列領域を割り付けます。割り付けられた領域は0で初期化されます。
[注意事項]
記憶域管理の関数は,ヒープ・メモリ領域から必要に応じて自動的にメモリ領域を確保します。
また,デフォルトのサイズは0x1000バイトなので,変更する場合は,ヒープ・メモリ領域を確保する必要があります。領域の確保は,アプリケーションの最初で行ってください。
 
【ヒープ・メモリ設定例】
| #include    <stddef.h> #define     SIZEOF_HEAP 0x2000 int     _REL_sysheap[SIZEOF_HEAP >> 2]; size_t  _REL_sizeof_sysheap = SIZEOF_HEAP; | 
| 
備考 1. | 変数“_REL_sysheap”は,ヒープ・メモリの先頭アドレスを指します。この値は,4の倍数にしてください。 | 
| 
備考 2. | 変数“_REL_sizeof_sysheap”に,必要なヒープ・メモリのサイズ(バイト)を設定してください。 | 
[使用例]
| #include    <stdlib.h> typedef struct {    double  d[3];     int     i[2]; } s_data; int func(void) {    s_data   *buf;     if((buf = calloc(40, sizeof(s_data))) == NULL)  /*s_data40個のための領域を割り付け*/         return(1);     /*処理を記述*/     free(buf);                                      /*領域を開放*/     return(0); } |