Is there a difference between malloc() and creating a variable and then using the & operator? : <p>In C, is there a difference between</p>

<pre><code>struct Foo foo;
struct Foo* fooPtr = &amp;foo;
</code></pre>

<p>and</p>

<pre><code>struct Foo* fooPtr = (struct Foo*) malloc(sizeof(struct Foo));
</code></pre>
