struct_wrapper_dynamic

Järgnevas näites on kirjeldatud kuidas teha struktuurile ümbrist, mis aitab jälgida mitu elementi struktuuri massiivis on juba kasutusel ning palju kokku on. Wrapper ehk ümbrisstruktuur hoiab endas siis mahtu ja kasutust ning viita struktuuride massiiivile (alamstruktuur) kus andmeid hoitakse.

Programmi töö testimiseks on pakutud näidisandmete fail. Näidisandmete puhul luuakse struktuur, mis mahutab 2 liiget. Esimesel korral lisatakse 2 andmerida ning teisel kroral veel 3 andmerida. Näidisandmete faili saab kasutada koos voo suunamisega ( ./programm < testandmed.txt )

Programm on antud kujul päisefail + c koodifail. C koodifailis on olemas makro EXPANDABLE, mille väärtuse alusel otsustatakse kas kirjete lisamisel on võimalik struktuure laiendada (EXPANDABLE 1, kasutab realloc) või on struktuurid fikseeritud suurusega (EXPANDABLE 0).

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