title: Error C2040: 'void *()' differs in levels of indirection from 'int ()'
body: <pre><code>#include &lt;stdio.h&gt;
  
  main()
  {
      myfunction();
  }
  
  void* myfunction() {
      char *p;
      *p = 0;
      return (void*) &amp;p;
  }
  </code></pre>
  
  <p>When the program run at Visual Studio, it could not compile and the error message goes like below:</p>
  
  <p>"Error  2   error C2040: 'myfunction' : 'void *()' differs in levels of indirection from 'int ()' "</p>
  
  <p>Could someone do a easy-explain? </p>
  
  <p>Thanks!</p>