Heap memory is a large pool you allocate from manually. You request memory with new and release it with delete. The heap can be gigabytes in size, limited mainly by available RAM. Heap allocation is slower than stack because the system must find a free block and track what's allocated.
But you control exactly when memory is allocated and freed. Heap memory persists until you explicitly delete it. This flexibility lets you create objects that outlive function calls, but forgetting to delete causes memory leaks.