Dear all,recently I started to use the Array Notation in the new compiler 12.1.0, which is amazing, and I am glad to finally have (dynamic) multi-dimensional array support in C++ too :).Unfortunately documentationis still a bit rare, so I am confused about following code (here an example)*****************#include #include typedef std::complex cmplxd;typedef cmplxd(*A2c)[];int Nx, Ny, NxLlD, NyLlD;void goCilk(cmplxd A[NxLlD,Nx][NyLlD,Ny]){ for(int x = NxLlD; x <= NxLlD+Nx-1; x++) { for(int y = NyLlD; y <= NyLlD+Ny-1; y++) { std::cout << x << " " << y << " " << A[x][y] << std::endl; }}}int main(){ NxLlD = 1; Nx = 4; NyLlD = 1; Ny = 3; cmplxd *A = new cmplxd[Nx*Ny]; for(int x = 0; x < Nx*Ny; x++) A[x] = 1.; A[0]=2.; goCilk((A2c) A);}*****************The code compiles and runs without error. Now concerning the "cmplxd goCilk(cmplxd A[NxLlD,Nx][NyLlD,Ny])" functions, I tought that A[NxLlD, Nx] defines the starting value, and the length of this dimension. Similar like fortran has with A(NxLlD:NxLlD+Nx-1), but it seems that even tough the code compiles, the NxLlD value has no meaning as I checked with using some random numbers for NxLlD/NyLlD.Could you please point me to the documentation, where I can find out the correct syntax ?And is it actually possible todefine an offset to an array (only in notation like in Fortran), e.g. right now A[0][0] points to the first value, but I would like thatA[NxLlD][NyLlD] to point to the lowest value (it makes life far more simpler for MPI (domain decomposition) programs).Thanks a lot and best wishes,Paul

# Array Notation : passing array to function

For more complete information about compiler optimizations, see our Optimization Notice.