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}
question from:
https://stackoverflow.com/questions/65878150/c-dynamic-two-dimension-array-declaration 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…