##### Shinobi Library - メモリマネージメント関数

# syReallocMulti

サブヒープ上での realloc 操作

### 書式

> `Void *syReallocMulti( heaph, op, nbytes )
> SYS_MALCM_HEAPH *heaph
> Void *op
> Uint32 nbytes
> `

### 引数

> heaph | (出力)ヒープハンドル
> op | すでに確保されているメモリ領域へのポインタ
> nbytes | 要求するサイズ

### 戻り値

> NULL | メモリ領域の拡大に失敗した
> その他 | 取得したメモリ領域へのポインタ

### 解説

> syMallocMultiCreate サブヒープ領域上の syMallocMulti で取得された領域を nbytes バイトに拡張または縮小します。

> 結果として位置が変わることがありますが、古いエリアの内容はコピーされます。

### 用例

>     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);
>     	{
>     		Void *tmpP;
>     		if((tmpP = syReallocMulti(&myHeaph, p, sizeof(STRUCT_FOO*2))) == NULL){
>     			 /* Could not reallocate the memory */
>     			 myError();
>     		} else {
>     			 p = tmpP;
>     			 DoWhatYouWant2(p);
>     		}
>     	}
>     	syFreeMulti(&myHeaph, p);
>     }
>     syMallocMultiDelete(&heaph);

### 備考

> サブヒープ領域に対する操作である以外は syRealloc()関数と同等の機能です。

### 参照

> syMallocMultiCreate() | サブヒープの登録
> syMallocMultiDelete() | サブヒープの登録解除
> syMallocMulti() | syMallocMulti サブヒープからのメモリ取得
> syFreeMulti() | サブヒープから取得したメモリ領域の開放
> syCallocMulti() | サブヒープ領域への calloc 操作
> syMallocMultiStat() | サブヒープ領域の使用状況調査
> syMallocMultiChangeIF() | サブヒープに対するインタフェースの置換え
> syRealloc() | 確保したメモリのサイズ変更

syReallocMulti

COPYRIGHT © SEGA ENTERPRISES, LTD., 1998-2000