Der
dynamische Speicher, auch
Heap (engl. für ‚Halde‘, ‚Haufen‘),
Haldenspeicher oder
Freispeicher ist ein
Speicherbereich, aus dem zur Laufzeit eines
Programms zusammenhängende Speicherabschnitte angefordert und in beliebiger Reihenfolge wieder freigegeben werden können. Die Freigabe kann sowohl manuell als auch mit Hilfe einer
automatischen Speicherbereinigung erfolgen. Eine Speicheranforderung aus dem Heap wird auch
dynamische Speicheranforderung genannt. Sie dient den Programmen dazu, über den vom Programmcode selbst und den fix reservierten Datenfeldern und dem
Stack (Stapelspeicher) belegten Speicher hinaus noch zusätzlichen
Pufferspeicher zur Verfügung zu haben.