Why use the **arr as parameter

Here why are we using the parameter as (int **arr) also why using a pointer of pointer.Whats the difference between this and defing the array as simply int ar[ ][ ];

hi @anasmir24
int **arr;
this is used because we have dynamically allocate array
this is because
the main advantage of using dynamic memory allocation is preventing the wastage of memory . This is because when we use static memory allocation , a lot of memory is wasted because all the memory allocated cannot be utilised.