Three questions in 1.
- If I have a 2-D array - - int array_name[num_rows][num_columns]- So it consists of num_rows arrays -each of which is an array of size = num_columns. Its equivalent representation using an array of pointers is- - int* array_name[num_rows]- -so the index given by [num_rows] still shows the number of 1-D arrays - somewhere using malloc we can then specify the size of each of the 1-D arrays as num_columns. Is that right? I saw some texts telling - int* array_name[num_columns]- will the indices not get switched in this case ? 
- For a ID array I specify size dynamically as- - int *p; p = (int*) malloc (size * sizeof(int))- For 2 D arrays do I specify the size of entire 2-D array or of one 1-D array in malloc - - int*p [row_count]; p = (int*) malloc (row_count * column_count * sizeof(int))- or - p = (int*) malloc (column_count * sizeof(int))- I think it should be the second since p is a pointer to a 1-D array and p+1 is a pointer to a 1-D array etc. Please clarify. 
- For ques 2 - what if p was defined as - - int **p;rather than- int * p[row_count]How will the malloc be used then? I think it should be -- p = (int*) malloc (row_count * column_count * sizeof(int))
Please correct, confirm, improve.
 
     
     
    