views:

100

answers:

1

I am exploring the lower level workings of the system, and was wondering how malloc determines the start address of the heap. Is the heap at a constant offset or is there a call of some sort to get the start address? Does the stack affect the start address of the heap?

+1  A: 

Traditionally, the heap started just above the text section and grew up; stack frames didn't affect start address at all as they grow down towards the unmapped 0 page. However, it's more common these days for

  1. The first address to be randomized, to make it harder for exploits to hit the right address in memory
  2. The heap to be non-contiguous, as malloc() usually just calls mmap() to get an address anywhere in the virtual address space
Michael Mrozek
Ah, I understand now. Thanks!
beta