Transcript

Munteanu Ana-MariaCSIE, AN III, GRUPA 1096Utilitatea memoriei dinamice

Structurile de date reprezinta modalitati in care datele sunt dispuse in memoria calculatorului sau sunt pastrate pe discul magnetic. Structurie de date sunt utilizate in diferite circumstante ca de exemplu: Memorarea unor date din realitate; Instrumente ale programatorilor; Modelarea unor situatii din lumea reala.

Funcii de alocare i eliberare a memoriei: Funciile standard de alocare i de eliberare a memoriei sunt declarate n fiierul antetstdlib.h.void* malloc(size_t size);void* calloc(size_t nmemb, size_t size);void* realloc(void *ptr, size_t size);void free(void *ptr); Rezultatul celor trei funcii de alocare este adresa zonei de memorie alocate (de tip void*) i ca argument comun dimensiunea, n octei, a zonei de memorie alocate (de tipsize_t). Funciile de alocare au rezultatNULL dac cererea de alocare nu poate fi satisfcut pentru c nu mai exist un bloc continuu de dimensiunea solicitat.

Utilitatea modului de lucru cu structuri de date:Vectori alocai dinamic Structura de vector are avantajul simplitii i economiei de memorie fa de alte structuri de date folosite pentru memorarea unei colectii de informaii ntre care exist anumite relaii. ntre cerina de dimensionare constant a unui vector i generalitatea programelor care folosesc astfel de vectori exist o contradicie. De cele mai multe ori programele pot afla (din datele citite) dimensiunile vectorilor cu care lucreaz i deci pot face o alocare dinamic a memoriei pentru aceti vectori. Aceasta este o solutie mai flexibil, care folosete mai bine memoria disponibil i nu impune limitri arbitrare asupra utilizrii unor programe. n limbajul C nu exist practic nici o diferen ntre utilizarea unui vector cu dimensiune fix i utilizarea unui vector alocat dinamic, ceea ce ncurajeaz i mai mult utilizarea unor vectori cu dimensiune variabil.

Matrice alocate dinamic Alocarea dinamic pentru o matrice este important deoarece: -folosete economic memoria i evit alocri acoperitoare, estimative. -permite matrice cu linii de lungimi diferite -reprezint o soluie bun la problema argumentelor de funcii de tip matrice. Daca programul poate afla numrul efectiv de linii i de coloane al unei matrice (cu dimensiuni diferite de la o execuie la alta), atunci se va aloca memorie pentru un vector de pointeri (funcie de numrul liniilor) i apoi se va aloca memorie pentru fiecare linie (funcie de numrul coloanelor) cu memorarea adreselor liniilor n vectorul de pointeri. O astfel de matrice se poate folosi la fel ca o matrice declarat cu dimensiuni constante.

Bibliografie:Cursuri http://ocw.cs.pub.roCursuri si seminarii http://acs.ase.ro/data-structures


Top Related