Heaps are memory areas allocated to each program. Memory allocated to heaps can be dynamically allocated, unlike memory allocated to Stack. As a result, the heap segment can be requested and released whenever the program needs it.
The heap segment provides a flexible area for storing large data structures and objects with dynamic lifetimes. Heap memory may be allocated or deallocated during the program execution.
Grows against the Stack.