 <p>You are treating an array of integers like an array of chars. The line that is marked as "means nothing" actually means a lot.</p> <p>When you increment <code>char* p</code> by one, you shift your pointer one byte, but in order to point to the <code>arr[1]</code> you need to increment it <code>sizeof(int)</code> bytes. Declare <code>p</code> as <code>int* p</code>, then <code>p+1</code> will do what you need.</p>