title: Does a union of a pointer and an array of pointers guarantee that the single pointer has the same address as the first element of the array?
body: <p>With the struct:</p>
  
  <pre><code>struct stree {
      union {
          void *ob;
          struct stree *strees[256];
      };
  };
  </code></pre>
  
  <p>Do the C standards (particularly C11) guarantee that <code>ob</code> is an alias of <code>stree[0]</code>?</p>