title: Does C strict aliasing make untyped static memory pools impossible?
body: <p>WG14 member Jens Gustedt says in <a href="https://gustedt.wordpress.com/2016/08/17/effective-types-and-aliasing" rel="noreferrer">a blog post on strict aliasing rules</a>:</p>
  <blockquote>
  <p>Character arrays must not be reinterpreted as objects of other types.</p>
  </blockquote>
  <p>Is that, in fact, true?  (I guess the corresponding language in the standard is the part saying that if an object has a declared type, then that type is its effective type.)  If so, does it mean that an allocator that parcels out memory from a statically declared memory region is <em>unimplementable</em> in standard C?</p>
  <p>I know TeX ignores most of Pascal’s type system and treats everything as an array of words because of a similar issue, but I hoped that if I ever found myself in a similar situation in (<code>malloc</code>-less) C, I could just declare a maximally aligned <code>char</code> array and keep using structs the usual way.  I also fail to see what the point of <code>_Alignas</code> could possibly be in such a world, except as a standardized device for expressing non-standard requirements (similar to <code>volatile</code>).</p>