メモリ割り当て関数 [OS]

void* malloc( size_t size ); (stdlib.h)
void near* _nmalloc( size_t size );
void far*
_fmalloc( size_t size );

メモリを取得します。失敗すると NULL を返し、errno に理由コードを設定します。

malloc は、small/medium モデルでは _nmalloc と、compact/large モデルでは _fmalloc と同じです。

_nmalloc は、near データとして使用できるメモリ、つまり DGROUP 先頭 (ds) から 64 KB 以内のメモリを割り当てます。_nmalloc で割り当てられるメモリの合計サイズは、64 KB から静的な near データとスタックのサイズを引いた値と同じです。

_fmalloc は、OS から直接メモリを取得します。

void free( void* mem ); (stdlib.h)
void
_nfree( void near* mem );
void
_ffree( void far* mem );

malloc、_nmalloc、または _malloc で取得したメモリを解放します。free は、small/medium モデルでは _nfree と、compact/large モデルでは _ffree と同じです。

_nfree は、実際には何も行いません。

_ffree は、メモリを OS に返します。

void* calloc( size_t num, size_t size ); (stdlib.h)

malloc( num * size ) と同じです。

void* realloc( void* mem, size_t size ); (stdlib.h)

メモリ mem のサイズを size に変更します。必要に応じて malloc が呼び出され、mem ブロックの内容がコピーされた後、その新しいメモリへのポインタが返されます。

size_t _msize( void _far* mem ); (stdlib.h)

malloc、_nmalloc、または _malloc で取得したメモリのサイズを調べます。

size_t _nmrest( void ); (stdlib.h)
long
_fmrest( void );

今後 _nmalloc、または _malloc で取得できる残存メモリ サイズを取得します。