Furthermore, in your particular case, open array parameters do not need to receive the whole array, but the dynamic array version only accepts a whole array of the correct size, no partial parts.
Be aware that if you pass partial values, the index is different and always starts at zero, it is not the index of the elements you pass: not a[2] index 2, but a[2] index 0.
They are two different beasts with an unfortunate similar syntax. Very confusing for beginners.