mexMakeArrayPersistent (C and Fortran)

Make array persist after MEX file completes

C Syntax

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

Fortran Syntax

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


By default, an mxArray allocated by an mxCreate* function is not persistent. The MATLAB® memory management facility automatically frees a nonpersistent mxArray when the MEX function finishes. If you want the mxArray to persist through multiple invocations of the MEX function, call the mexMakeArrayPersistent function.


Do not assign an array created with the mexMakeArrayPersistent function to the plhs output argument of a MEX file.


If you create a persistent mxArray, you are responsible for destroying it using mxDestroyArray when the MEX file is cleared. If you do not destroy a persistent mxArray, MATLAB leaks memory. See mexAtExit to see how to register a function that gets called when the MEX file is cleared. See mexLock to see how to lock your MEX file so that it is never cleared.

Input Arguments

expand all

Pointer to an mxArray created by an mxCreate* function, specified as mxArray * in C or mwPointer in Fortran.

See Also

mexAtExit, mxDestroyArray, mexLock, mexMakeMemoryPersistent, and the mxCreate* functions

Introduced before R2006a