With C++11, we can use
auto carrots{new double[rows][4]}
if we want to allocate dynamic two dimension array. Here I see another way to explicitly declare the pointer like
double (*carrots)[4]{new double[rows][4]}
According to my understanding, double (*carrots)[4]
is a pointer to an array of double[4]. I think there should be a mismatch between this and new double[rows][4]
. Because I think double[rows][4]
represents an array of size rows instead of array of size 4.
As we know the lay out of c++ two dimension array should like this
int test[3][2] {{0,1},{2,3},{4,5}}
is exactly the same as
int test[6]{0,1,2,3,4,5}