| 外部インタフェース/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 | ![]() |