Heap is memory at runtime.
Memory allocation and de-allocation must be performed by a programmer manually.
In contrast - stack's memory is allocated and de-allocated automatically by a compiler.