title: What does "cast to pointer from integer of different size" mean?
body: <p>This is an example of what my code looks like:</p>
  
  <pre><code>void *a = NULL;
  void *b = //something;
  a = (void *)(*((char *)b + 4));
  </code></pre>
  
  <p>The value that (b+4) is pointing to is an address that I want to store in a. When I try to compile, I get "warning: cast to pointer from integer of different size." What does this mean, and what should I do to fix it?</p>
  
  <p>EDIT: To clarify, I don't want 'a' to point to an address that is 4 bytes greater than 'b'. In my program, I know that the value stored at ((char *)b + 4) is itself another pointer, and I want to store this pointer in 'a'.</p>