Dinamiskajiem mainīgajiem atmiņā nepieciešamā vieta programmas izpildes gaitā var tikt aizņemta un pēc tam atkal atbrīvota. To var izdarīt attiecīgi ar Pascal iebūvēto procedūru New un Dispose palīdzību. Piemēram, ja ir dots uzdevums, kur nepieciešama bibliotēkas lasītāju uzskaite, ar dinamisko mainīgo palīdzību, vieta atmiņā jauna lasītāja pievienošanai tiktu aizņemta tikai tad, kad tas būtu nepieciešams. Savukārt, ja kāds cilvēks vairs nevēlas būt bibliotēkas klients, viņa dati no atmiņas var tikt izdzēsti un atbrīvotā vieta kļūtu izmantojama citu datu glabāšanai vai pat citu uzdevumu veikšanai. Nedaudz zaudēt atmiņu iznāk tomēr arī šajā gadījumā, jo bez klientu uzvārdiem, vārdiem un citiem datiem nāksies glabāt arī norādes uz atmiņas apgabalu, kur ir dati par pārējiem lasītājiem.
Lai to izdarītu, programmā jāizmanto norādes jeb pointer tipa mainīgie, šī tipa mainīgie atmiņā aizņem 4 baitus. Šo mainīgo vērtības ir nevis vienkārši skaitļi, bet datora operatīvās atmiņas apgabalu adreses. Definējot norādes tipa mainīgo, jāapraksta, kāda veida informācija glabāsies atmiņas apgabalā, kura adrese būs šī mainīgā vērtība. Lai noteiktu, ka mainīgā vērtība būs adrese, nevis kāds cits lielums, Pascal valodā lieto zīmi ^. Piemēram:
Var p:^integer; t:^real;
Begin
New(p); new(t);
Readln(p^, t^);
End.
Izpildot šīs programmas pirmo rindiņu, atmiņā tiktu rezervēta vieta mainīgo p un t vērtību glabāšanai – katram pa 4 baitiem. Izpildot operatoru new, atmiņā vēl tiktu rezervēta vieta vienam integer un vienam real tipa lielumam – attiecīgi 2 un 6 baiti. Šajās vietās arī nonāktu no klaviatūras ievadītās vērtības.…