Operatii Permise Cu Variabil Dinamice

3
Variabila dinamica poate lua o valoare nedeterminata (0) notata prin cuvintul cheie “nil”. Structura de date ce foloseste variabile dinamice se numeste structura dinamica de date, adica pe parcursul problemei cimpul de memorie alocat acestei structure este o marime variabila. Aceasta ne da posibilitatea de a folosi memoriea calculatorului rational . Pentru acest tip de variabile poate fi modificat volumul de memorie rezervat, ceea ce face mai flexibilă alocarea memoriei în procesul de lucru al programului. Structurile dinamice pot acumula elemente în procesul de funcţionare al programului, sau pot lichida elementele ce au devenit neutilizabile. Accesarea (definirea) este indirectă, prin intermediul unui tip mediator de variabile – tipul referinţă. Pentru variabilele tip referinţă se alocă un spaţiu de memorie de 4 octeţi, care conţin adresa variabilei dinamice. Memoria pentru variabilele dinamice se alocă dintr-o zonă specială, care foloseşte adresarea indirectă, numită heap. Această zonă este diferită de zona pentru variabilele statice. La alocarea unei variabile dinamice, este obligatoriu să păstrăm o referinţă către ea într-o variabilă de tip referinţă. Altfel, nu vom putea accesa în viitor variabila dinamică. În momentul în care nici o referinţă nu mai trimite către variabila dinamică, variabila dinamică este distrusă automat de către sistem printr-un mecanism numit colector de gunoaie. Pentru a rezerva spaţiu pentru o variabilă dinamică este nevoie să apelăm la o expresie de alocare care foloseşte cuvântul rezervat new. Această expresie alocă spaţiul necesar pentru un anumit tip de valoare. Variabila tip_referinţă păstrează adresa adresei variabilei dinamice. Pentru a putea utiliza variabilele dinamice în program ele trebuie iniţializate prin procedura NEW. Schema de lucru a variabilelor referinţă: zona HEAP Memoria program zona variabilelor statice variabilă tip referinţă (4 bytes) adresa variabila dinamică referită

description

а:Operatii permise cu variabil dinamice.docxа:Operatii permise cu variabil dinamice.docxа:Operatii permise cu variabil dinamice.docxа:Operatii permise cu variabil dinamice.docxа:Operatii permise cu variabil dinamice.docxа:Operatii permise cu variabil dinamice.docxа:Operatii permise cu variabil dinamice.docxа:Operatii permise cu variabil dinamice.docxа:Operatii permise cu variabil dinamice.docxа:Operatii permise cu variabil dinamice.docxа:Operatii permise cu variabil dinamice.docxа:Operatii permise cu variabil dinamice.docxа:Operatii permise cu variabil dinamice.docxа:Operatii permise cu variabil dinamice.docxа:Operatii permise cu variabil dinamice.docxа:Operatii permise cu variabil dinamice.docxа:Operatii permise cu variabil dinamice.docxа:Operatii permise cu variabil dinamice.docxа:Operatii permise cu variabil dinamice.docxа:Operatii permise cu variabil dinamice.docxа:Operatii permise cu variabil dinamice.docxа:Operatii permise cu variabil dinamice.docxа:Operatii permise cu variabil dinamice.docxа:Operatii permise cu variabil dinamice.docxа:Operatii permise cu variabil dinamice.docxа:Operatii permise cu variabil dinamice.docxа:Operatii permise cu variabil dinamice.docxа:Operatii permise cu variabil dinamice.docxа:Operatii permise cu variabil dinamice.docxа:Operatii permise cu variabil dinamice.docxа:Operatii permise cu variabil dinamice.docxа:Operatii peа:Operatii permise cu variabil dinamice.docxа:Operatii permise cu variabil dinamice.docxа:Operatii permise cu variabil dinamice.docxа:Operatii permise cu variabil dinamice.docxа:Operatii permise cu variabil dinamice.docxа:Operatii permise cu variabil dinamice.docxа:Operatii permise cu variabil dinamice.docxа:Operatii permise cu variabil dinamice.docxа:Operatii permise cu variabil dinamice.docxа:Operatii permise cu variabil dinamice.docxа:Operatii permise cu variabil dinamice.docxа:Operatii permise cu variabil dinamice.docxа:Operatii permise cu variabil dinamice.docxа:Operatii permise cu variabil dinamice.docxа:Operatii permise cu variabil dinamice.docxа:Operatii permise cu variabil dinamice.docxа:Operatii permise cu variabil dinamice.docxа:Operatii permise cu variabil dinamice.docxа:Operatii permise cu variabil dinamice.docxа:Operatii permise cu variabil dinamice.docxа:Operatii permise cu variabil dinamice.docxа:Operatii permise cu variabil dinamice.docxа:Operatii permise cu variabil dinamice.docxа:Operatii permise cu variabil dinamice.docxа:Operatii permise cu variabil dinamice.docxа:Operatii permise cu variabil dinamice.docxа:Operatii permise cu variabil dinamice.docxа:Operatii permise cu variabil dinamice.docxа:Operatii permise cu variabil dinamice.docxа:Operatii permise cu variabil dinamice.docxа:Operatii permise cu variabil dinamice.docxа:Operatii permise cu variabil dinamice.docxrmise cu variabil dinamice.docxа:Operatii permise cu variabil dinamice.docxа:Operatii permise cu variabil dinamice.docx

Transcript of Operatii Permise Cu Variabil Dinamice

Page 1: Operatii Permise Cu Variabil Dinamice

Variabila dinamica poate lua o valoare nedeterminata (0) notata prin cuvintul cheie “nil”.

Structura de date ce foloseste variabile dinamice se numeste structura dinamica de date, adica pe parcursul problemei cimpul de memorie alocat acestei structure este o marime variabila.

Aceasta ne da posibilitatea de a folosi memoriea calculatorului rational .

Pentru acest tip de variabile poate fi modificat volumul de memorie rezervat, ceea ce face mai flexibilă alocarea memoriei în procesul de lucru al programului. Structurile dinamice pot acumula elemente în procesul de funcţionare al programului, sau pot lichida elementele ce au devenit neutilizabile. Accesarea (definirea) este indirectă, prin intermediul unui tip mediator de variabile – tipul referinţă.

Pentru variabilele tip referinţă se alocă un spaţiu de memorie de 4 octeţi, care conţin adresa variabilei dinamice. Memoria pentru variabilele dinamice se alocă dintr-o zonă specială, care foloseşte adresarea indirectă, numită heap. Această zonă este diferită de zona pentru variabilele statice.

La alocarea unei variabile dinamice, este obligatoriu să păstrăm o referinţă către ea într-o variabilă de tip referinţă. Altfel, nu vom putea accesa în viitor variabila dinamică. În momentul în care nici o referinţă nu mai trimite către variabila dinamică, variabila dinamică este distrusă automat de către sistem printr-un mecanism numit colector de gunoaie.

Pentru a rezerva spaţiu pentru o variabilă dinamică este nevoie să apelăm la o expresie de alocare care foloseşte cuvântul rezervat new. Această expresie alocă spaţiul necesar pentru un anumit tip de valoare.

Variabila tip_referinţă păstrează adresa adresei variabilei dinamice. Pentru a putea utiliza variabilele dinamice în program ele trebuie iniţializate prin procedura NEW.

Schema de lucru a variabilelor referinţă:

variabilă tip referinţă (4 bytes) adresa variabilei dinamice

Exemplu:

type pointReal = ^Real;var ar, br, cr : pointReal;

variabila dinamică referităprogram

zona variabilelor statice

Memoria

zona HEAP

Page 2: Operatii Permise Cu Variabil Dinamice

variabile tip referinţă adrese a variabilei dinamice ar, br, cr

Exemplu

type pointReal = ^Real;

var ar, br, cr : pointReal;

Begin

New (ar); New (br); New (cr);

Readln (ar^, br^);

cr^ := ar^+ br^;

Writeln (cr^);

End.

variabile dinamice referiteprogram

zona variabilelor statice

Memoria

ar^ br^ cr^ zona HEAP