title: Whats the difference between foo->bar and &foo->bar?
body: <pre><code>1. struct thread_args 
     {
  2.   int thread_id;
  3.   struct timeval before;
  4.   struct timeval after;
     }
  
  5. void * foobar(void *threadargs)
     {
  6.   struct * mydata;
  7.   mydata = (struct thread_args *) threadargs;
  
  8.   gettimeofday(&amp;mydata-&gt;before, NULL);
  9.   gettimeofday(mydata-&gt;before, NULL);
     }
  
  ...
  </code></pre>
  
  <p>What's the difference between lines 8 and 9? The former compiles, the latter does not, but even though the first one compiles I'm not sure that it does what I want.</p>