Сохраните память, выделенную 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-функцию, чтобы он никогда не был очищен.