Void syMallocMultiCreate( heaph, heap, size )
SYS_MALCM_HEAPH *heaph
Void *heap
Uint32 size
heaph ヒープハンドル(出力)
なし
syMallocMulti ライブラリにサブヒープ領域を登録します。syMallocMultiCreate()関数の呼出し後のヒープハンドルheaphは、 syMallocMulti()、syFreeMulti()などの関数で操作対象とするヒープを指定するために使用します。
引数heap に指定する領域は、そのヒープを使用しつづける間に存在する領域であれば、グローバル変数やスタティック変数で取得した配列領域や syMalloc()関数で取得したヒープ領域であっても構いません。
Sint8 myHeap[1024]; Void *p; SYS_MALCM_HEAPH myHeaph; STRUCT_FOO foo; syMallocMultiCreateHeap(&myHeaph, myHeap, 1024); if((p = syMallocMulti(&myHeaph, sizeof(STRUCT_FOO))) == NULL){ /* Could not allocate the memory */ myError(); } else { /* Allocation OK */ DoWhatYouWant(p); syFreeMulti(&myHeaph, p); } syMallocMultiDelete(&heaph);
引数 heap が 32 バイトアライメントでない場合には、渡されたヒープ領域に含まれる最初の 32 バイトアライメントされたアドレス以降をヒープとして使用します。
syMallocMultiDelete() サブヒープの登録解除 syMallocMulti() syMallocMulti サブヒープからのメモリ取得 syReallocMulti() サブヒープ上での realloc 操作 syFreeMulti() サブヒープから取得したメモリ領域の開放 syCallocMulti() サブヒープ領域への calloc 操作 syMallocMultiStat() サブヒープ領域の使用状況調査 syMallocMultiChangeIF() サブヒープに対するインタフェースの置換え