mdlCleanupRuntimeResources
在模拟结束时执行一次所需的任何操作
要求
是的
语言
C, c++
语法
(SimStruct *S)
参数
-
年代
-
SimStruct表示S-Function块。
描述
该方法执行模拟终止或S-Function块被破坏(例如,从模型中删除)时必须执行的任何操作,例如释放内存。
在C MEX s函数中mdlCleanupRuntimeResources
方法在模拟之后调用(mdlSetupRuntimeResources
调用),并且它反转mdlSetupRuntimeResources
.
请注意
如果你有万博1manbetx®编码器™,当为包含此方法的非内联C MEX s函数生成代码时,请确保该方法没有被包装在#如果定义(MATLAB_MEX_FILE)
声明。例如:
#if defined(MATLAB_MEX_FILE) static void mdlCleanupRuntimeResources(SimStruct *S){/*在这里添加mdlCleanupRuntimeResources代码*}#endif
的定义
语句使mdlCleanupRuntimeResources
方法只适用于MATLAB®墨西哥人文件。如果s函数没有内联,万博1manbetx仿真软件编码器不能使用此方法,导致链接或运行时错误。
例子
假设你的s函数分配内存块mdlSetupRuntimeResources
并保存指向a中的块的指针PWork
向量。下面的代码片段将释放此内存。
#定义MDL_CLEANUP_RUNTIME_RESOURCES静态void mdlCleanupRuntimeResources(SimStruct *S) {int i;For (i = 0;我< ssGetNumPWork(年代);i++) {if (ssGetPWorkValue(S,i) != NULL) {free(ssGetPWorkValue(S,i));}}}
在R2016b中引入
这个话题有帮助吗?