+ 1
int N , M; cout << "ENTER N M: cin >> N >> int **p = new int *[N] for(int i = 0; i < N; i++); P[i] = new int [M]; what is it means? i dont understand pointers of this code. please explain
pointers to pointers
2 ответов
+ 2
before begin - errors:
cout << "ENTER N M: ";
cin >> N;
int **p = new int *[N];
for(int i = 0; i < N; i++)
p[i] = new int [M];
and it means that you declare 2d array p [N][M].
Because the array is a set of pointers. When creating 2D array, it means creating an array of pointers to pointers, and for each pointer created new array again. and if should go to the element for example p [3][4] it means that you go to value that saved in such pointer *(*(p+3)+4)
+ 1
here p is pointer to pointer
but actually it pointer of multidimensional array
p[i] is assigned as pointer to one 1dimentional array and for such N times so it is forming an 2d array