void __near * __far calloc(size_t nmemb, size_t size);
領域の割り付けに成功した場合,その領域へのポインタを返します。
nmembまたはsizeが0の場合,あるいは領域を割り付けられない場合はnullポインタを返します。
大きさがsizeの,要素数nmemb個の配列領域を割り付け,その領域を0で初期化します。
セキュリティ機能用malloc系ライブラリを使用する場合,次の操作を行った場合に__heap_chk_fail関数を呼び出します。
__heap_chk_fail関数はユーザが定義する必要があり,動的メモリ管理の異常時に実行する処理を記述します。
__heap_chk_fail関数を定義する際には,次の項目に注意してください。
セキュリティ機能用のcalloc,malloc,およびreallocは,領域外への書き込みを検出するために前後各2バイト余分に領域を割り当てます。このため,通常より多くヒープ・メモリ領域を消費します。
ヒープ・メモリ領域のデフォルト・サイズは0x100バイトです。
ヒープ・メモリ領域を変更する場合は,配列_REL_sysheapを定義し,配列のサイズを変数_REL_sizeof_sysheapに設定してください。
【ヒープ・メモリ領域設定例】 #include <stddef.h> #define SIZEOF_HEAP 0x200 char _REL_sysheap[SIZEOF_HEAP]; size_t _REL_sizeof_sysheap = SIZEOF_HEAP; |