mexMakeArrayPersistent (C и Фортран)

Заставьте массив сохраниться после того, как файл MEX завершится

Синтаксис C

#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* функции

Представлено до R2006a

Была ли эта тема полезной?