72 lines
2.1 KiB
Markdown
72 lines
2.1 KiB
Markdown
# ArraySize
|
||||
|
|
|
|||
|
|
The function returns the number of elements of a selected array.
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
int ArraySize(
|
|||
|
|
const void& array[] // checked array
|
|||
|
|
);
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
Parameters
|
|||
|
|
|
|||
|
|
array[]
|
|||
|
|
|
|||
|
|
[in] Array of any type.
|
|||
|
|
|
|||
|
|
Return Value
|
|||
|
|
|
|||
|
|
Value of [int](/en/docs/basis/types/integer/integertypes) type.
|
|||
|
|
|
|||
|
|
Note
|
|||
|
|
|
|||
|
|
For a one-dimensional array, the value to be returned by the ArraySize is equal to that of [ArrayRange](/en/docs/array/arrayrange)(array,0).
|
|||
|
|
|
|||
|
|
Example:
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
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);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
```
|