Заставьте массив сохраниться после того, как файл MEX завершится
#include "mex.h" void mexMakeArrayPersistent(mxArray *pm);
#include "fintrf.h" subroutine mexMakeArrayPersistent(pm) mwPointer pm
\pm
Указатель на mxArray
, созданный mxCreate
* функция
По умолчанию mxArray
, выделенный mxCreate
* функция, не является персистентным. Средство управления памятью MATLAB® автоматически освобождает нестойкий mxArray
, когда MEX-функция заканчивается. Если вы хотите, чтобы mxArray
сохранился посредством нескольких вызовов MEX-функции, вызовите функцию mexMakeArrayPersistent
.
Не присваивайте массив, созданный с функцией mexMakeArrayPersistent
к выходному аргументу plhs
файла MEX.
Если вы создаете персистентный mxArray
, вы ответственны за уничтожение его с помощью mxDestroyArray
, когда файл MEX очищен. Если вы не уничтожаете персистентный mxArray
, MATLAB пропускает память. Смотрите mexAtExit
, чтобы видеть, как зарегистрировать функцию, которая называется, когда файл MEX очищен. Смотрите mexLock
, чтобы видеть, как заблокировать ваш файл MEX так, чтобы это никогда не было очищено.
mexAtExit
, mxDestroyArray
, mexLock
, mexMakeMemoryPersistent
и mxCreate
* функции