# OS_AllocFixed

## 構文

      #include <nitro/os.h>

      void* OS_AllocFixed( OSArenaId id, void** rstart, void** rend );

## 引数

id | メモリ割り当てを行なう領域のアリーナのアリーナID
rstart | ブロック開始アドレスへのポインタ
rend | ブロック終了アドレスへのポインタ

## 返り値

指定ブロックが割り当てられた場合、その先頭アドレスを返します。このアドレスは32バイトアラインメントされています。
rstart と rend は要求領域より大きいであろう実際の領域の先頭と終了アドレスへ補正されます。

## 説明

指定の領域を割り当てます。

アリーナはアリーナID id で指定します。この値については `OS_InitArena()` を参照してください。そのアリーナ内の別のヒープのメモリブロックと生じた重複部分は、ヒープから削除されます。これは不連続で飛び飛びのヒープの原因となるかもしれません。あるいは`OS_AddToHeap()` を使うことによってもこの現象が発生します。他の固定ブロックに関しての重複に対するチェックは行われません。サイズが0(zero-length) のヒープが発生するかもしれません。

`OS_AllocFixed`関数は`OS_Alloc*()` に関するどの呼び出しよりも前に呼び出す必要があります。

## 参照

`OS_InitArena, OS_AddToHeap, OS_AllocFromHeap
`

## 履歴

2004/01/06 初版