title: malloc() 5GB memory on a 32 bit machine
body: <p>I was reading in a book:</p>
  
  <blockquote>
    <p>The virtual address space of a process on a 32 bit machine is 2^32 i.e. 4Gb of space. And every address seen in the program is a virtual address. The 4GB of space is further goes through user/kernel split 3-1GB.</p>
  </blockquote>
  
  <p>To better understand this, I did malloc() of 5Gb space and tried to print the all addresses. If I print the addresses, How is the application going to print whole 5Gb address when It has only 3GB of virtual address space? Am I missing something here? </p>