Alokacja pamięci oraz dealokacja pamięci – odpowiednio przydział i zwolnienie ciągłego obszaru pamięci. Po uruchomieniu, proces (program) otrzymuje od systemu operacyjnego jedno lub więcej pól dostępnej pamięci, możliwej do dowolnego wykorzystania. W zależności od przyjętej konstrukcji i zastosowania obszar nazywany jest stertą (ang. heap) lub stosem. W trakcie działania program może zażądać od systemu operacyjnego większej ilości pamięci (alokacja) lub też zwolnić niepotrzebny obszar (dealokacja).

Wewnętrznie programy samodzielnie zarządzają przydzieloną im pamięcią – niskopoziomowe języki programowania dostarczają interfejs programistyczny do zarządzania stertą, który oferuje wyłącznie możliwość zarezerwowania pewnego obszaru (alokacja) i późniejszego jego zwalniania (dealokacja). Wiele wysokopoziomowych języków programowania automatycznie przeprowadza procedurę dealokacji, bez udziału programisty.

Dla przykładu w języku C, do ręcznej dynamicznej alokacji i dealokacji pamięci służą funkcje biblioteki standardowej: malloc (alokacja) i free (dealokacja);