realloc


メモリの再割り当てを行います。

[所属]

標準ライブラリ

[指定形式]

#include <stdlib.h>

void *realloc(void *ptr, size_t size);

[戻り値]

領域の割り付けに成功した場合,その領域へのポインタを返します。割り付けができなかった場合,nullポインタを返します。

[詳細説明]

ptrが指す領域の大きさを,sizeの大きさに変更します。以前の大きさと,sizeの小さい方までの領域の内容は変わりません。領域を拡張する場合の,以前の大きさ以降の領域内容は初期化されません。ptrがnullポインタのときは,“malloc (size)”と同じ動作をします。それ以外の場合,ptrには,callocmalloc,および本関数で獲得した領域を指定しなければなりません。

[注意事項]

記憶域管理の関数は,ヒープ・メモリ領域から必要に応じて自動的にメモリ領域を確保します。

また,デフォルトのサイズは0x1000バイトなので,変更する場合は,ヒープ・メモリ領域を確保する必要があります。領域の確保は,アプリケーションの最初で行ってください。

 

【ヒープ・メモリ設定例】

#include    <stddef.h>
#define     SIZEOF_HEAP 0x2000
int     _REL_sysheap[SIZEOF_HEAP >> 2];
size_t  _REL_sizeof_sysheap = SIZEOF_HEAP;

備考 1.

変数“_REL_sysheap”は,ヒープ・メモリの先頭アドレスを指します。この値は,4の倍数にしてください。

備考 2.

変数“_REL_sizeof_sysheap”に,必要なヒープ・メモリのサイズ(バイト)を設定してください。