This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English verison of the page.

Note: This page has been translated by MathWorks. Please click here
To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.


Specify user data


void ssSetUserData(SimStruct *S, void *data)



SimStruct representing an S-Function block.


User data.


Stores a pointer to the memory location containing the S-function's user data. To avoid memory leaks, the S-function must free this memory location during the call to mdlTerminate.

An S-function containing user data must perform the following steps.

  1. Allocate memory for the user data, using a customized structure to store more complicated data.

  2. Set the SS_OPTION_CALL_TERMINATE_ON_EXIT option in mdlInitializeSizes, to ensure the Simulink® engine always calls the mdlTerminate function.

  3. Store the pointer to the memory location in the user data, using a call to ssSetUserData.

  4. In mdlTerminate, use ssGetUserData to retrieve the pointer to the memory location and free the memory.

See Creating Run-Time Parameters from Multiple S-Function Parameters for an example that uses user data in conjunction with run-time parameters.

    Note   You cannot access user data from within a Target Language Compiler (TLC) file. Use DWork vectors instead of user data if you need to write a TLC-file to inline the S-function during code generation with Simulink Coder™. For an example using DWork vectors, see sfcndemo_sfun_rtwdwork.


C, C++


See the S-function sfun_runtime4.c used in sfcndemo_runtime.

Introduced before R2006a

Was this topic helpful?