c - Accessing 2D array elements using double pointer -


recently had interview in c. interviewer has asked me explain how access particular element in 2d array using double pointer. gave answer *(*(a+i)+j), a double pointer, i number of rows , j number of columns. later asked me explain using example. confused @ *(a+i) gives value instead of address , adding j gives junk value. can please explain.

remember in 1d array a[i] equals *(a+i). , there no 2d arrays in c, arrays of arrays.

so a[i][j] equal *(*(a+i)+j).

if type of a int**, type of (a+i) still int**, need dereference it. type of *(a+i) int* , type of *(*(a+i)+j) int.

about interview question, no matter a double pointer, should still use [] notation. alternative cumbersome:

int **a = ...; int x = a[i][j]; 

Comments

Popular posts from this blog

android - MPAndroidChart - How to add Annotations or images to the chart -

javascript - Add class to another page attribute using URL id - Jquery -

firefox - Where is 'webgl.osmesalib' parameter? -