Dinamikus változó (programozás)

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt hozzászólók, és jelentősen eltérhet a 2015. február 4-én felülvizsgált verziótól ; az ellenőrzések 5 szerkesztést igényelnek .

Dinamikus változó  - egy változó a programban , egy hely a RAM -ban, amelyhez a program végrehajtása során van lefoglalva. Valójában ez egy memóriadarab , amelyet a rendszer a program futása közben meghatározott célokra lefoglal egy program számára. Ebben különbözik egy globális statikus változótól – egy memóriadarabtól , amelyet a rendszer a program indítása előtt meghatározott célokra lefoglal egy program számára. A dinamikus változó a változó tárolási osztályok egyike .

Mivel egy dinamikus változó a program végrehajtása során jön létre, sok programozási nyelvben nincs saját azonosítója . A dinamikus változókkal végzett munka közvetetten, egy mutatón keresztül történik . Egy ilyen változó létrehozása egy memóriadarab speciális függvény segítségével történő lefoglalásából áll. Ez a függvény a mutatóhoz rendelt memóriacímet adja vissza. A memória mutatón keresztüli elérésének folyamatát dereferenciának nevezzük . A dinamikus változóval végzett munka befejezése után fel kell szabadítani a számára lefoglalt memóriát - erre van egy speciális funkció is.

Példa dinamikus változó létrehozására Pascal-mutatóval:

írja be a tMyArray = tömb [1..3] of real; var pMyArray = ^tMyArray; kezdődik new(pMyArray); {memóriakiosztás három számból álló tömbhöz} pMyArray^[1] := 1,23456; pMyArray^[2] := 2,71828; pMyArray^[3] := 3,14159; ......

A viszonylag alacsony szintű programozási nyelvekben kifejezetten a mutatókat használják, ami tele van súlyos hibákkal. A magasabb szintű nyelvekben a dinamikus adattípusok dinamikus tömbökké alakíthatók.

Példa dinamikus tömb létrehozására Delphiben:

var MyArray = valós tömb; kezdődik SetLength(MyArray,3); {memóriakiosztás három számból álló tömbhöz} MyArray[0] := 1,23456; {a Delphiben a dinamikus tömbök C-stílusban vannak számozva: 0-tól n-1-ig} MyArray[1] := 2,71828; MyArray[2] := 3,14159; ......

A magas szintű nyelvekben a dinamikus adattípusok más módon is formázhatók - osztályokként , és a memória lefoglalásának és felszabadításának folyamatait az egyes osztályok konstruktora és destruktora írja le.