Main Content

代码生成的数组大小限制

对于代码生成,数组元素的最大数量受代码生成器和目标硬件的限制。

对于使用静态内存分配的固定大小数组和可变大小数组,元素的最大数量是以下两者中的较小者:

  • intmax('int32').

  • 目标硬件上 C int 数据类型可容纳的最大整数。

对于使用动态内存分配的可变大小数组,元素的最大数量是以下两者中的较小者:

  • intmax('int32').

  • 目标硬件上 C int 数据类型可容纳的最大的 2 的幂。

这些限制甚至适用于 64 位平台。

对于固定大小数组,如果元素的数量超出最大值,代码生成器会在编译时报告错误。

对于可变大小数组,如果在运行时元素的数量超出最大值,错误检查行为取决于代码生成目标:

  • 通过使用 codegen (MATLAB Coder) 命令、fiaccel (Fixed-Point Designer) 命令或 MATLAB® Coder™ 运行生成的代码时,如果启用了运行时错误检查,生成的代码会报告错误。默认情况下,对 MEX 代码启用运行时错误检查,对独立 C/C++ 代码禁用运行时错误检查。

  • 在仿真 MATLAB Function 模块的过程中,软件会报告错误。为 MATLAB Function 模块生成的独立代码无法报告数组大小冲突。