Void *syMallocMulti(heaph, nbytes)
SYS_MALCM_HEAPH *heaph
Uint32 nbytes
heaph (出力)ヒープハンドル nbytes 要求するサイズ
NULL 確保に失敗した その他 取得したメモリ領域へのポインタ
この関数は syMallocMultiCreate()関数で登録済みのサブヒープ領域から 引数nbytes で示されるバイト分のメモリ領域を取得します。確保される領域は、32バイト境界にアライメントされます。
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);
あらかじめ登録されたサブヒープ領域からメモリ確保を行うこと以外は syMalloc()関数と同等の機能です。
syMallocMultiCreate() サブヒープの登録 syMallocMultiDelete() サブヒープの登録解除 syReallocMulti() サブヒープ上での realloc 操作 syFreeMulti() サブヒープから取得したメモリ領域の開放 syCallocMulti() サブヒープ領域への calloc 操作 syMallocMultiStat() サブヒープ領域の使用状況調査 syMallocMultiChangeIF() サブヒープに対するインタフェースの置換え syMalloc() メモリの確保