title: Explicit cast required to pointer to void pointer
body: <p>I have the following function signature</p>
  
  <pre><code>int foo(void **)
  </code></pre>
  
  <p>and am trying to give it a pointer to a <code>char</code> pointer, i.e. <code>char **</code>. My compiler is complaining with the following warning</p>
  
  <pre><code>argument of type "char **" is incompatible with parameter of type "void **"
  </code></pre>
  
  <p>Is this to be expected? I know passing a <code>char *</code> to a function expecting a <code>void *</code> requires no explicit cast but is this true for pointers to pointers?</p>
  
  <p>Note : this is explicitly a <code>C</code> question. I would be interested if different <code>C</code> versions treat this differently.</p>