title: What does void(*)() mean in code
body: <p>I saw this code today in some fb profile, and was not able to understand what is and how this is working:-</p>
  
  <pre><code>(*(void(*)()) shellcode)()
  </code></pre>
  
  <p>Can someone please explain me, what does above code mean ?</p>
  
  <p>Full Code Snippet Below :-</p>
  
  <pre><code>#include &lt;stdio.h&gt;
  #include &lt;string.h&gt;
  
  char *shellcode = "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69"
            "\x6e\x89\xe3\x50\x53\x89\xe1\xb0\x0b\xcd\x80";
  
  int main(void)
  {
  fprintf(stdout,"Length: %d\n",strlen(shellcode));
  (*(void(*)()) shellcode)();
  return 0;
  }
  </code></pre>