Ümbris-struktuur dünaamilisele massiivile

Järgnev näide demonstreerib ümbrisstruktuuri (wrapper) kasutamist dünaamilisele massiivile. Ümbrise eesmärk on lihtsustada massiivi ligipääsu ning suuruse haldamist – st kus andmed paiknevad, palju liikmeid massiivis on ning mitme liikme jaoks mälu parasjagu eksisteerib.

Testimiseks on lisatud käsurea sisend ( stdin ) koos ettemääratud töövooga.

  1. Luuakse massiiv, mis mahutab kaks kirjet
  2. Massiivi lisatakse kaks kirjet
  3. Proovitakse lisada veel kolm kirjet

Kolmanda sammu tulemus sõltub EXPANDABLE  makro väärtusest (1 või 0).

Etteantud sisendiga faili saab kasutada koos voo suunamisega: ./programm < testandmed.txt .

Programm koosneb päise- ja koodifailist. Koodifail sisaldab eelnevalt viidatud EXPANDABLE  makrot. Kui makro väärtus on 1, laiendatakse mälu kasutades realloc() funktsiooni. Kui makro on väärtusel 0, fikseeritakse massiivi suurus esimese kasutaja sisendiga.

Laiendamisel kasutatakse põhimõtet, et iga kord suurendatakse mälumahtu 2x olemasolevast.