W trakcie działania podajemy programowi informacje jak dużo pamięci potrzebujemy - np. wczytując z klawiatury ilość elementów tablicy.
Program w trakcie działania zwraca się do systemu operacyjnego o dostęp do takiej ilości pamięci jaka jest potrzebna do przechowania "x" ilości elementów tablicy (oczywiście tablica jest tu tylko przykładem), a system po swojemu znajduje taką pamięć i przydziela ją naszemu programowi.
My w odpowiedzi dostajemy adres w pamięci, gdzie system znalazł odpowiednią ilość pamięci - dlatego adres ten od razu przypisujemy do jakiegoś wskaźnika - w innym wypadku bezpowrotnie by nam to przepadło.