1.2.13.1 How to declare and use arrays

Arrays really aren't arrays in the proper sense of the word. They can
better be seen as lists with fixed order. The difference might seem slight,
but it makes sense to the computer-science buffs :)

Arrays are type-specific. This means that an array of a certain type only
can contain variables of that single type. Another restrictions is that all
arrays are one-dimensional. You can't have an array of arrays. However,
the mixed type takes care of these limitations. A mixed variable
can act as an array containing any data type, even other arrays. As a
rule you should try to use properly typed arrays to minimize the
probabilities of programming mistakes however.

... will result in your_arr becoming the new array ({ 383, 5,
391 }); If you give a new value to an old array, the previous array is
lost.

e.g.
my_arr = ({ });

... will result in my_arr holding an empty array. The old array is
de-allocated and the memory previously used is reclaimed by the gamedriver.

If you index outside an array, an error occurs and execution of the object
is aborted. However, range indexing outside the array does not result in an
error, the range is then only constrained to fall within the array.

If you want to create an empty array, initialized to 0 (no matter the type
of the array, all positions will be set to 0 anyway) of a given length, you
use the efun allocate().