title: How `realloc` work actually in the background?
body: <p>How <code>realloc</code> work actually in the background?
  If there is not enough memory available at old place does 
  this one allocating <strong>two/many memory blocks</strong> and one pointer 
  pointing to that and other are internally linked with each 
  other or the old region copied into new place where enough
  memory is available and pointer is updating to new address and deleting the old memory?</p>
  
  <p>And is that <code>realloc</code> is <strong>Compiler/OS dependent or independent</strong>?</p>