I have a question about how to pass a 2D array to a function.
I know I can do things like this:
void print(int a[][20]){
cout << "print 1" << a[10][10] << endl;
}
int main(){
int a[20][20];
print(a);
cout << "print 2" << *(*(a+10)+10) << endl;
}
print 1 and 2 should give me the same result.
a is a 2D pointer if I am correct.
But I cannot do this
void print(int** a){
}
int main(){
int a[20][20];
print(a);
cout << "print 2" << *(*(a+10)+10) << endl;
}
The error is:
cannot convert ‘int (*)[20]’ to ‘int**’ for argument ‘1’ to ‘void print_int(int**)’
Why I cannot do this?