Заставьте массив сохраниться после того, как файл 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
Функции