title: Reinterpret 2d array as pointer
body: <p>Assume I have an array like this:</p>
  
  <pre><code>unsigned char a[10][10];
  </code></pre>
  
  <p>and I want to use fread to read bytes into this array (row-major order):</p>
  
  <pre><code>FILE *f = fopen("xxx.bin", "rb");
  fread((unsigned char *)a, 1, 10 * 10, f);
  fclose(f);
  </code></pre>
  
  <p>As the first parameter of fread is of type <code>void *</code>, is there a standard way to convert <code>unsigned char a[10][10]</code> to <code>void *</code>? Should I use <code>static_cast</code> or <code>reinterpret_cast</code> or? As 2d-arrays in c++ are allocated consecutively, I think it is reasonable to reinterpret it as pointers.</p>