I would like to see Memory layout of my program in C so that i can understand all the different segments of the Memory practically during run-time like change in BSS or Heap
Another alternative is pmap tool which dumps the process memory mapping details:
pmap [ -x | -d ] [ -q ] pids...
pmap -V
pmap is part of procps collection.
Also if you are interest in physical mapping, you can take a look at pagemap, which is made available in recent Linux Kernel to let process know it's physical memory info. It might be useful for user space driver development where user space process need to find physical address of a buffer as DMA destination.
https://www.kernel.org/doc/Documentation/vm/pagemap.txt