title: Interview question about various pointer size under 32bit architecture
body: <pre><code>char str[] = " http://www.ibegroup.com/";
  
  char *p = str ;
  
  void Foo ( char str[100]){
  
  }
  
  void *p = malloc( 100 );
  </code></pre>
  
  <p>What's the <code>sizeof</code> <code>str</code>,<code>p</code>,<code>str</code>,<code>p</code> in the above 4 case in turn?</p>
  
  <p>I've tested it under my machine(which seems to be 64bit) with these results:</p>
  
  <pre><code>25 8 8 8
  </code></pre>
  
  <p>But don't understand the reason yet.</p>