Main Content

mexMakeArrayPersistent (C および Fortran)

MEX ファイルの完了後も配列を存続させる

C 構文

#include "mex.h"
void mexMakeArrayPersistent(mxArray *pm);

Fortran 構文

#include "fintrf.h"
subroutine mexMakeArrayPersistent(pm)
mwPointer pm

説明

既定の設定では、関数 mxCreate* によって割り当てられている mxArray は存続しません。MATLAB® メモリ管理機能により、存続しない mxArray は MEX 関数の完了時に自動的に解放されます。MEX 関数を複数回呼び出す間に mxArray を存続させる場合は、関数 mexMakeArrayPersistent を呼び出します。

警告

関数 mexMakeArrayPersistent で作成された配列を、MEX ファイルの plhs 出力引数に割り当てないでください。

メモ

存続する mxArray を作成した場合は、MEX ファイルをクリアする際に mxDestroyArray を使用して破棄する必要があります。存続する mxArray を破棄しないと、MATLAB でメモリ リークが発生します。MEX ファイルをクリアする際に呼び出される関数の登録方法は、mexAtExit を参照してください。MEX ファイルをロックして決してクリアされないようにする方法は、mexLock を参照してください。

入力引数

すべて展開する

関数 mxCreate* で作成された mxArray へのポインター。C では mxArray *、Fortran では mwPointer として指定します。

参考

mexAtExitmxDestroyArraymexLockmexMakeMemoryPersistent、および mxCreate*

バージョン履歴

R2006a より前に導入