文档

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中引入

这个话题有帮助吗?