Variable-Size Data
During code generation, the code generator identifies arrays, including scalars, vectors, and matrices, as either fixed size or variable size.
The code generator designates an array as variable size if it cannot determine the size of the array or if the size of the array changes.
The code generator designates an array as fixed size if it can determine that the size of the array does not change.
Understanding how the code generator handles fixed- and variable-size arrays can help you to diagnose and fix errors during code generation. If your application does not require variable-size arrays, you can also fine-tune variable sizing and dynamic memory allocation to potentially improve the performance of the generated code.
Functions
coder.areUnboundedVariableSizedArraysSupported | Check if current configuration settings allow unbounded variable-size arrays (Since R2024a) |
coder.varsize | Resolve size incompatibility errors and declare upper bounds |
Topics
- Generate Code for Variable-Size Arrays
Learn how the code generator defines and handles fixed- and variable-size data.
- Define Variable-Size Data for Code Generation
Choose a method for defining variable-size data.
- Control Memory Allocation for Variable-Size Arrays
Control when dynamic memory allocation is used.
- Control Dynamic Memory Allocation for Fixed-Size Arrays
Control when to dynamically allocate memory for fixed-size arrays.
- Specify Upper Bounds for Variable-Size Arrays
To avoid dynamic memory allocation, specify upper bounds for variable-size arrays.
- Incompatibilities with MATLAB in Variable-Size Support for Code Generation
Understand how the behavior of the generated code can differ from MATLAB® as a result of variable-size data.
- Use Dynamically Allocated C Arrays in the Generated Function Interfaces
Understand and use dynamically allocated arrays from the generated C function interfaces.
- Use Dynamically Allocated C++ Arrays in Generated Function Interfaces
Understand and use dynamically allocated arrays from the generated C++ function interfaces.
Troubleshooting
Resolve Error: Arrays Have Incompatible Sizes
Troubleshoot size incompatibility errors that occur during code generation.
Resolve Error: Fixed Size on the Left Side but Variable Size on the Right
Troubleshoot errors when assigning variable-size arrays to fixed-size arrays.
Resolve Error: coder.varsize Not Supported for Strings
Troubleshoot code generation error when using coder.varsize
with string variables.