title: Casting pointers for arithmetic - C
body: <p>If I have a void * x, but I want to cast it to a char *, so that the ++ operator will make it point to the next byte and not the next 4 byte block.</p>
  
  <p>However, when I do:</p>
  
  <pre><code>(char *) x -= byte_length;
  </code></pre>
  
  <p>The compiler complains:</p>
  
  <pre><code>Error, lvalue required as left value of assignment.
  </code></pre>
  
  <p>Where am I going wrong please?
  Thanks.</p>