| void OnStart(){
 //--- create arrays
 double one_dim[];
 double four_dim[][10][5][2];
 //--- sizes
 int one_dim_size=25;
 int reserve=20;
 int four_dim_size=5;
 //--- auxiliary variable
 int size;
 //--- allocate memory without backup
 ArrayResize(one_dim,one_dim_size);
 ArrayResize(four_dim,four_dim_size);
 //--- 1. one-dimensional array
 Print("+==========================================================+");
 Print("Array sizes:");
 Print("1. One-dimensional array");
 size=ArraySize(one_dim);
 PrintFormat("Zero dimension size = %d, Array size = %d",one_dim_size,size);
 //--- 2. multidimensional array
 Print("2. Multidimensional array");
 size=ArraySize(four_dim);
 PrintFormat("Zero dimension size = %d, Array size = %d",four_dim_size,size);
 //--- dimension sizes
 int d_1=ArrayRange(four_dim,1);
 int d_2=ArrayRange(four_dim,2);
 int d_3=ArrayRange(four_dim,3);
 Print("Check:");
 Print("Zero dimension = Array size / (First dimension * Second dimension * Third dimension)");
 PrintFormat("%d = %d / (%d * %d * %d)",size/(d_1*d_2*d_3),size,d_1,d_2,d_3);
 //--- 3. one-dimensional array with memory backup
 Print("3. One-dimensional array with memory backup");
 //--- double the value
 one_dim_size*=2;
 //--- allocate memory with backup
 ArrayResize(one_dim,one_dim_size,reserve);
 //--- print out the size
 size=ArraySize(one_dim);
 PrintFormat("Size with backup = %d, Actual array size = %d",one_dim_size+reserve,size);
 }
 |