title: The bounds on void-pointers in ANSI C89/ISO C90
body: <p><strong>Is there a way to portably determine the upper and lower bound on void-pointer values in ANSI C89/ISO C90?</strong> (I currently do not have a copy of the standard with me (I have one at home). Of course if void-pointer values are guaranteed to be unsigned  this task is trivial (via sizeof(void *)); however, I cannot recall if this is guaranteed or not. I can think of a few very inefficient algorithms (increment until overflow, etc.), but I would like to know if anyone has a relatively cheap (in terms of time-complexity) and portable way to calculate these bounds.)</p>
  
  <p>--EDIT--</p>
  
  <p><strong>Also:</strong> Is there a portable way to determine the validity of the pointer values?</p>
  
  <p><strong>Why:</strong> This came up in a discussion with a co-worker and it stumped me. I don't know what he's working on, but I just want to know because I am interested! :-)</p>