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