动态数组目标

动态数组

最大的四次元数组也可被声明。 当定义一个动态数组,(方括号里第一对未知值数组),编译器自动编译上述结构变量(动态数组变量)为正确的初始化提供代码。

当声明程序在能见度之上数组自动释放。

示例:

double matrix[][10][20]; // 三维动态数组
ArrayResize(matrix,5);   // 设置第一维大小

静态数组

当有效阵列维数被定义后,编译器会再分配必要的内存,这种数组叫做静态数组。然而,编译器会为动态数组目标分配额外内存,目标和再分配的静态缓冲器(存储数组的内存部分)有关。

创建动态数组目标是需要经过静态数组确定参数和部分功能的。

Examples:

double stat_array[5]; // 1维静态数组
some_function(stat_array);
...
bool some_function(double& array[])
  {
   if(ArrayResize(array,100)<0return(false);
   ...
   return(true);
  }

在架构中的数组

当静态数组被描述成架构中的一员,动态数组目标不能创建,在windows API中是为了确保数据结构的兼容性。

然而,静态数组都能被描述成结构成员,也能通过MQL5功能,在此情况下,当通过一个动态数组临时目标的常量时,与静态数组连接―架构会员就会产生。

另见

数组函数初始变量虚拟范围和时间变量创建和删除目标