最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

メモリ管理

MEX 関数から MATLAB® に制御が戻るとき、左辺の引数 plhs[] に含まれる出力引数 mxArray に計算の結果が返されます。これらの配列には一時的なスコープがなければならないので、関数 mexMakeArrayPersistent で作成された配列を plhs には渡さないでください。MATLAB は、plhs 内にない MEX 関数によって作成された mxArray があれば、それを破棄します。MATLAB は、関数 mxCalloc、関数 mxMalloc または関数 mxRealloc を使用して MEX 関数に割り当てられたメモリもすべて解放します。

バイナリ MEX ファイルの実行終了時に残っている誤って作成された配列は、メモリ エラーの原因になる可能性があります。

MathWorks® では、MEX 関数が独自の一時的な配列を破棄し、動的に割り当てられた独自のメモリを解放することを推奨します。自動メカニズムに依存するより、ソース MEX ファイルでこのクリーンアップを実行する方がより効率的です。メモリ管理手法の詳細については、メモリ管理の問題を参照してください。