I have a question about a pointer to 2d array. If an array is something like
int a[2][3];
then, is this a pointer to array a
?
int (*p)[3] = a;
If this is correct, I am wondering what does [3]
mean from int(*p)[3]
?
arraysc++multidimensional-arraypointerssyntax
I have a question about a pointer to 2d array. If an array is something like
int a[2][3];
then, is this a pointer to array a
?
int (*p)[3] = a;
If this is correct, I am wondering what does [3]
mean from int(*p)[3]
?
Best Answer
a
is read as an array 2 of array 3 of int which is simply an array of arrays. When you write,int (*p)[3] = a;
It declares
p
as a pointer to the first element which is an array. So,p
points to the array of 3 ints which is a element of array of arrays.Consider this example:
Here,
p
is your pointer which points to the array of 3 ints which is an element of array of arrays.