title: mmap() vs malloc() return address
body: <p>Why does <code>mmap()</code> return a 64 bit address while <code>malloc()</code> returns a 32 bit address ?</p>
  
  <pre class="lang-c prettyprint-override"><code>char *a = (char *)mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0);
  printf("%p\n", a); // example: 0x7fbfbb065000
  
  char *b = (char *)malloc(10); // example: 0x23bf010
  printf("%p\n", b);
  </code></pre>