getting the most 32 significant bits from unsigned long long error : <p>I am trying to store the most significant 32 bits that is stored in unsigned long long into unsigned int.
I can simply use the code below I got from Stack Overflow:</p>

<pre><code>uint64_t temp;
uint32_t msw, lsw;
msw = (temp &amp; 0xFFFFFFFF00000000) &gt;&gt; 32;
lsw = temp &amp; 0x00000000FFFFFFFF;
</code></pre>

<p>However, I've used an array to do a similar thing:</p>

<pre><code>unsigned long long * bits64 = new unsigned long long[1];
*(bits64 + 0) = 18446744073709551615;
unsigned int * first32 = (*(bits64 + 0) &amp; 0xFFFFFFFF00000000) &gt;&gt; 32;
</code></pre>

<p>Why am I getting</p>

<blockquote>
  <p>'Cannot initialize a variable of type 'unsigned int *' with an rvalue
  of type unsigned long long'</p>
</blockquote>

<p>How do I fix this?</p>
