title: C - pointer arithmetics
body: <p>I have:</p>
  
  <pre><code>char buffer[512 + 12];
  </code></pre>
  
  <p>And I'm trying to force <code>buffer</code> to be 16 bytes alligned (meaning - zero it's last 4 bits).
  So I tried:</p>
  
  <pre><code>buffer = (char*)(((uint32_t)buffer +12)) &amp; ~0xF);
  </code></pre>
  
  <p>But I'm getting <code>incompatible types in assignment</code></p>
  
  <p>I'm guessing this is because char[] and char* aren't the same type. How do I solve this?</p>