外部インタフェース/API リファレンス    
mxMalloc

MATLABのメモリマネージャを使ってダイナミックメモリを割り当てます。

C 言語表示

引数
n
   割り当てるバイト数。

戻り値

成功した場合は、割り当てられたダイナミックメモリの先頭のポインタ。スタンドアロン(非MEX-ファイル)アプリケーションで成功しない場合、mxMallocNULLを出力します。MEX-ファイルで成功しない場合、MEX-ファイルは終了し、制御はMATLABプロンプトに戻ります。

mxMallocは十分なフリーのヒープ領域がない場合は成功しません。

詳細

MATLABアプリケーションは、常にmallocではなくmxMallocを呼び出してメモリを割り当てます。mxMallocは、スタンドアロンMATLABアプリケーションとMEX-ファイルとでは異なる動作をすることに注意してください。

MEX-ファイルでは、mxMallocはつぎのことを自動的に行います。

MATLABのメモリ管理機能は、mxMallocによって割り当てられたすべてのメモリのリストをもっています。MATLABメモリ管理機能は、制御がMATLABプロンプトに戻ったときにすべてのMEX-ファイルを自動的に開放(デアロケート)します。

スタンドアロンMATLABアプリケーションでは、mxMallocはデフォルトでANSI C関数mallocを呼び出します。このデフォルトの動作が好ましくない場合は、ユーザ自身がメモリ割り当てルーチンを書き、mxSetAllocFcnsを使ってそのルーチンを登録することができます。その後、mxMallocが呼び出されるときには、mxMallocmallocの代わりにユーザ定義のメモリ割り当てルーチンを呼び出します。

デフォルトでは、MEX-ファイルでは、mxMallocは固定でないmxMallocデータを生成します。言い換えると、メモリ管理機能は、MEX-ファイルが終了すると直ちにメモリを自動的に開放します。MEX-ファイルが終了した後でメモリを固定にしたい場合は、mxMallocを呼び出した後でmexMakeMemoryPersistentを呼び出してください。固定メモリを使ってMEX-ファイルを書く場合は、MEX-ファイルがクリアされたイベントで割り当てられたメモリを開放する関数mexAtExitを登録してください。

mxMallocによって割り当てられたメモリの利用を終了するときには、mxFreeを呼び出してください。mxFree はメモリを開放します。

例題

examplesディレクトリのmxサブディレクトリのmxmalloc.cを参照してください。さらに、examplesディレクトリのmxサブディレクトリのmxsetdimensions.cを参照してください。

参考

mxCalloc, mxFree, mxDestroyArray, mexMakeArrayPersistent,
mexMakeMemoryPersistent, mxSetAllocFcns


 mxIsUint32 mxRealloc