Dynamická alokace paměti
Pokud nevíme předem, jak velká budou vstupní data, která chceme zpracovávat, potřebujeme využít možnost "říct si o pamět" během vykonávání programu.
Pamět programu přiděluje operační systém. V pascalu jsou definovány standartní procedury new (alokace) a dispose (uvolnění) pro práci s pamětí.
Na cvičení jsme probrali syntaxi a zkusili si naprogramovat jednoduchý příklad.
Při práci s dynamickou pamětí je na místě zvýšená opatrnost. Vyplatí se důsledně kontrolovat jestli ukazatele ukazují tam, kam mají. Například proto, že chyby způsobené špatnou prací s pointry se špatně hledají. Existují ale i další důvody:

Spojový seznam
Dynamickou alokaci jsme si vyzkoušeli na jednoduchém spojovém seznamu.

Programovali jsme procedury:
- vloz(x: integer) - vloží číslo x do seznamu
- vypis - vypíše celý seznam
Příklad implementace procedury vlož:
type PBox = ^TBox; TBox = record v: integer; next: PBox; end; var pSeznam: PBox; procedure vloz(x: integer); var pNewBox: PBox begin new(pNewBox); (pNewBox^).next := pSeznam; pSeznam := pNewBox; (pNewBox^).v := x; end;
Domácí úkol
V CodExu je zadána úloha Telefonní seznam čísel za 20 bodů. Cílem je naprogramovat lineární spojový seznam.