title: calloc() to a pointer in struct doesn't work on clang
body: <p>I have implemented a queue in C. Consider the below code:</p>
  
  <pre class="lang-c prettyprint-override"><code>#include &lt;stdio.h&gt;
  #include &lt;stdlib.h&gt;
  
  typedef struct queue queue;
  struct queue {
    int len;
    int head;
    int tail;
    int* array;
  };
  
  int main(int argc, char* argv[argc+1]) {
    int len = 12;
    queue* q = malloc(sizeof(q));
    *q = (queue){
      .array = calloc(len, sizeof(int)),
      .len = len,
    };
    for (int i = 0; i &lt; len; i += 1) {
      printf("%d\n", q-&gt;array[i]);
    }
    free(q-&gt;array);
    free(q);
    return EXIT_SUCCESS;
  }
  </code></pre>
  
  <p>I used calloc() to initialize an array in the structure, but some values of the array are not zero.</p>
  
  <pre class="lang-sh prettyprint-override"><code>$ clang -Wall -O0 -g -o queue.o queue.c &amp;&amp; ./queue.o
  952118112
  32728
  0
  0
  0
  0
  0
  0
  0
  0
  0
  0
  </code></pre>
  
  <p>Why is that?</p>