title: What happens when I cast uint8_t array to uint32_t?
body: <p>Suppose I have this array:</p>
  
  <pre><code>uint8_t arr[10];
  </code></pre>
  
  <p>located at address <code>0x00</code>.</p>
  
  <p>Then I want to assign part of it to  uint32_t value. Aggregatin of arr[1], arr[2], arr[3] and arr[4] to 32 bit integer. Here is an example:</p>
  
  <pre><code>uint8_t arr[10];
  uint32_t i;
  i = *( (uint32_t *)&amp;arr[1] );
  </code></pre>
  
  <p>What bothers me is that <code>arr[1]</code> is located at address not multiple of four(at address 0x01). So the question is: what would happen on 32bit platform? Is this legal, does it have some disadvantages compared to standard <code>uint32</code> assignments?</p>