Не могли бы поподробней рассказать о выделении памяти. Что такое HEAP? Какого он изначально размера, что происходит, когда место в нем выделяется полностью, а программа запрашивает еще? Где он находится в области программы?
В glibc используется Doug Lea allocator (http://gee.cs.oswego.edu/dl/html/malloc.html). Использует brk для хранения данных, при определенных опциях может также использовать анонимные VMA (mmap/MAP_ANONYMOUS).