mexMakeMemoryPersistent (C and Fortran)

Make memory allocated by MATLAB persist after MEX function completes

C Syntax

#include "mex.h"
void mexMakeMemoryPersistent(void *ptr);

Fortran Syntax

#include "fintrf.h"
subroutine mexMakeMemoryPersistent(ptr)
mwPointer ptr


By default, memory allocated by MATLAB® is nonpersistent, so it is freed automatically when the MEX function finishes. If you want the memory to persist, call mexMakeMemoryPersistent.


If you create persistent memory, you are responsible for freeing it when the MEX function is cleared. If you do not free the memory, MATLAB leaks memory. To free memory, use mxFree. See mexAtExit to see how to register a function that gets called when the MEX function is cleared. See mexLock to see how to lock your MEX function so that it is never cleared.

Input Arguments

expand all

Pointer to the beginning of memory allocated by one of the MATLAB memory allocation routines, specified as mxArray * in C or mwPointer in Fortran.

Introduced before R2006a