title: Why shouldn't I receive 2D arrays by **&?
body: <p>Reading some others questions about passing 2d arrays I realized that no one answered this:</p>
  
  <pre><code>void func(int **&amp;matrix) {
      matrix[2][1]=5;
      ...
  }
  
  int main() {
      int **matrix;
      matrix=new int*[10];
      for(int q=0;q&lt;10;q++)
          matrix[q] = new int[5];
      func(matrix);
      ...
  }
  </code></pre>
  
  <p>I tested it and it works. Any problem with this code?</p>