外部インタフェース/API リファレンス | ![]() ![]() |
mxCalloc
によって割り当てられたダイナミックメモリを開放
Fortran 言語表示
subroutine mxFree(ptr) integer*4 ptr
引数
ptr
mxCalloc
によって割り当てられたメモリの先頭のポインタ。
詳細
mxFree
は、ヒープ領域を開放します。mxFree
は、MATLAB自身のメモリ管理機能を使ってメモリを開放します。これは、エラーおよびabort(Ctrl-C)条件での正しいメモリ管理を保証します。
mxFree
は、スタンドアロンMATLABアプリケーションでの動作とMEX-ファイルでの動作が異なります。MEX-ファイルを使うと、mxFree
はmxCalloc
を使って割り当てたヒープメモリに戻ります。このコマンドを利用してメモリを開放しない場合、MATLABはMEX-ファイルから戻るときに自動的にメモリを開放します。スタンドアロンMATLABアプリケーションでは、明示的にメモリを開放する必要があり、MATLABメモリ管理は利用されません。
MEX-ファイルでは、mxFree
の使用は、指定したメモリが固定かそうでないかに依存します。デフォルトでは、mxCalloc
によって作成されたメモリは、固定ではありません。
MATLABメモリ管理機能は、MEX-ファイルが終了するときにすべての固定でないメモリを自動的に開放します。そのため、mxFree
を呼び出さなくても、MATLABはユーザに代わってメモリの開放を行います。それでも、MEX-ファイルの使用の終了後に直ちにメモリを開放することは、良いプログラミングの習慣です。そうすることによって、一般にシステム全体がより効率的に実行されます。
MEX-ファイルを終了するとき、MATLABメモリ管理機能は、固定メモリを開放しません。そのため、固定メモリを開放する唯一の方法は、mxFree
を呼び出すことです。一般に、MEX-ファイルはクリーンアップハンドラを登録するためにmexAtExit
を呼び出します。そのとき、クリーンアップハンドラは、mxFree
を呼び出します。
参考
![]() | mxCreateString | mxFreeMatrix | ![]() |