title: Why is h_addr_list (in hostent struct) typed as char** and not void*?
body: <p>I was trying to figure out a piece of code which constructs a hostent object, more specifically, the part of it's work that populates the h_addr_list array.  </p>
  
  <p>I was confused by the fact that the values that were assigned into the array were cast to <code>char*</code>, seeing as this array has nothing to do with strings as far as I read.  </p>
  
  <p>I noticed that the <code>h_addr_list</code> array is actually typed as <code>char**</code>.</p>
  
  <p>The only place I saw that takes note of this fact is <a href="http://beej.us/guide/bgnet/output/html/multipage/gethostbynameman.html" rel="nofollow">section 9.7 in beej's Guide to Network Programming</a>, but even there there's no explanation on why is it typed so.</p>
  
  <p>Is there a reason that <code>h_addr_list</code> is typed as <code>char**</code> and not <code>void*</code>/<code>void**</code> (or anything else that might be a bit more informative)?</p>