@array is NOT SAME as @array[0] or @array[0, 0], it is simply not, just like string[0] is something else, for arrays you need to point your pointer AT THE DATA, NOT at the variable itself, the structure of the variable is not guaranteed to be same on all compilers, but the DATA is, so point at the data and not at the variable, because variable may contain internal structures to reprisent and hold the actual data.

If you have a dynamic 2d array of integers the data is not even guaranteed to be contigous, there may be internal data between each row of these arrays, not delphi not fpc or any other pascal compiler will guarantee that @array would ever point to data itself and the contigoucy of dynamic array internal structures.