title: Passing a 2D array in a function in C program
body: <p>Below program (a toy program to pass around arrays to a function) doesn't compile.
  Please explain me, <strong>why is the compiler unable to compile(either because of technical reason or because of standard reason?</strong>)</p>
  
  <p>I will also look at some book explaining pointers/multi dimensional arrays(as I am shaky on these), but any off-the-shelf pointers here should be useful.</p>
  
  <pre><code>void print2(int ** array,int n, int m);
  
  main()
  {
      int array[][4]={{1,2,3,4},{5,6,7,8}};
      int array2[][2]={{1,2},{3,4},{5,6},{7,8}};
      print2(array,2,4);
  }
  
  void print2(int ** array,int n,int m)
  {
      int i,j;
      for(i=0;i&lt;n;i++)
      {
         for(j=0;j&lt;m;j++)
         printf("%d ",array[i][j]);
  
         printf("\n");
      }
  }
  </code></pre>