Alocare Dinamica - Turbo Pascal

Imagine preview
(8/10 din 1 vot)

Acest proiect trateaza Alocare Dinamica - Turbo Pascal.
Mai jos poate fi vizualizat cuprinsul si un extras din document (aprox. 2 pagini).

Arhiva contine 2 fisiere doc, pas de 21 de pagini (in total).

Iti recomandam sa te uiti bine pe extras, cuprins si pe imaginile oferite iar daca este ceea ce-ti trebuie pentru documentarea ta, il poti descarca. Ai nevoie de doar 4 puncte.

Domeniu: Calculatoare

Cuprins

1. INTRODUCERE
Denumirea tipului pointer
Alocarea si eliberarea memoriei pentru pointeri
Folosirea variabilelor referite de pointeri
Pointerul NIL
Atribuirea unui pointer la alt pointer
2. LISTE
2.1 Notiunea de lista
2.2 Liste liniare simplu înlantuite
2.3 Liste liniare dublu înlantuite
2.4 Liste circulare
3. Stive si cozi
4. Aplicatia
Bibliografie

Extras din document

ALOCAREA DINAMICA A MEMORIEI

1. INTRODUCERE

Memoria RAM este împartita în locatii de memorie. Fiecare locatie memoreaza un octet (8 biti) si are o adresa exprimata în hexazecimal.

Variabilele limbajului Pascal sunt de deoua tipuri:

- Variabile statice;

- Variabile dinamice.

Variabilele statice trebuie declarate în zona ded declaratii a programului, precizând numele si tipul lor. Compilatorul limbajului Pascal rezerva automat pentru fiecare variabila statica, o zona fixa în memoria interna RAM, alcatuita din locatii succesive.

Numarul acestor locatii (octeti) depinde dee tipul variabilei:

- Doi octeti pentru integer;

- Sase octeti pentru real;

- Un octet pentru char.

Acest mod de memorare a variabilelor statice se numeste alocare statica a memoriei.

Exemplu: var x:integer;

Un alt mod de memorare a variabilelor este alocarea dinamica a memoriei, prezentata în continuare.

Se considera un numar întreg. În loc sa fie memorat numarul întrt-o variabila x de tipul integer, se va memora în x adresa de memorie a numarului respectiv. În acest caz spunem ca variabila x adreseaza un numar întreg si se numeste pointer catre un numar întreg. Pentru declararea pointerilor se foloseste operatorul ^ („sageata”).

Exemplu: var x:^integer;

Tipul de date ^integer al variabilei x se numeste „tipul pointer catre numere întregi” sau „tipul referinta catre numere întregi”.

Daca pointerul x contine adresa unui numar întreg, atunci numarul propriu-zis se va memora într-o variabila pereche atasata (creata automat), care se noteaza cu x^ si se numeste variabila dinamica.

Exemplu:

Var u:^real;

C:^char;

Denumirea tipului pointer

Tipurile de date „pointer catre real”, „pointer catre întreg” sunt anonime. Un tip pointer poate fi însa denumit, ca orice tip anonim, cu cuvântul cheie type.

Exemplu: type preal=^real;

Var x,y,z,u: preal;

Se considera un pointer x catre un numar întreg: var x:^integer;

Numarul întreg se va memora în variabila dinamica pereche x.

Alocarea si eliberarea memoriei pentru pointeri

La declararea unui pointer, compilatorul Pascal nu aloca automat spatiul de memorie necesar. Acest lucru trebuie facut de program, apelând procedura NEW care primeste ca parametru pointerul. Operatia se numeste alocare dinamica a memoriei.

Exemplu: NEW(x);

Când nu mai este nevoie de pointer, trebuie eliberata memoria care a fost alocata, pentru ca nici aceasta nu se face automat. Pentrru eliberarea memoriei se apeleaza procedura DISPOSE, care de asemenea primeste ca parametrtu pointerul.

Exemplu: DISPOSE(x);

Atât alocarea, cât si eliberarea memoriei au loc în faza de executie a programului si nu în faza de compilare.

Folosirea variabilelor referite de pointeri

Fisiere in arhiva (2):

  • Alocare Dinamica - Turbo Pascal
    • Alocare Dinamica - Turbo Pascal.doc
    • LISTE.PAS