IntroducereAlocareDinamica


 * data** : un mod de reprezentare a informaţiei.

Orice dată, poate fi **caracterizată** prin:
 * **Identificator** (nume)
 * **Tip de date** ( intreg, real, caracter…); în funcţie de tipul datei declarat se alocă spaţiu de memorie: 2,4,6 octeţi ; Domeniul de valori**[limita_iniţială, limita_finală]** depinde de tipul datei declarat;
 * **durata de viaţă / domeniul de vizibilitate:** valoarea recunoscută într-un anumit punct al programului/subprogramului;
 * **modul de acces** la conţinutul locaţiei de memorie : //direct// prin intermediul identificatorului, //indirect// prin intermediul pointerilor (în funcţie de **modul de alocare a memoriei )**;


 * Zone/segmente de memorie**
 * 1) **segmentul de date -** variabile globale, recunoscute în orice punct al programului ( **alocare statică)**;
 * 2) **segmentul de stivă** – varabile locale/ subprograme
 * 3) **segmentul HEAP –gestionat prin** alocare dinamică – în timpul execuţiei programului/subprogramului


 * include****<……….>**
 * //declarări date/variabile globale – segmentul de date//**


 * subprogram : tip_date(void) nume_subprogram (parametrii formali..)**

//(// //{delimitarea conţinutului unui bloc } )//
 * int main**
 * { declarări variabile locale – segment de memorie stivă**
 * // Toate variabilele declarate sunt recunoscute numai în interiorul blocului //**
 * ………………………………………….. cod program/subprogram/bloc**
 * } // la ieşirea din subprogram/bloc spaţiul de memorie alocat în segmentul de memorie stivă utilizat este dezafectat ( se goleşte stiva)**


 * Alocare statică= **** se alocă spaţiu de memorie în timpul compilării programului; **


 * Alocare dinamică **** = **** se alocă spaţiu de memorie în timpul execuţiei programului ; spaţiul alocat poate fi dezafectat în momentul în care nu mai este nevoie de conţinuturile variabilelor respective;**


 * HEAP. Operatori şi constante predefinite în limbajul C **** ++ **


 * NULL ****- constanta predefinită prin care se indică o adresă inexistentă/nealocată( compatibilă cu orice tip de date pointer); **
 * new tip_date - **** se rezerva spatiu de memorie în zona HEAP pentru tipul de date specificat **
 * delete (adresa_HEAP) - **** dezafectare spatiu de memorie alocat în zona HEAP de la adresa specificata **


 * Exemplu didactic: **
 * int *a,*b,*c; **
 * a= new int; b= new int; c= new int; **
 * *a=3; *b=4; *c=*a+*b; **
 * cout<<*c; se va afisa 7 **
 * cout << endl; **
 * cout<<c; atentie! se va afisa adresa unei variabile de memorie in format hexa... de genul 0x83107... **
 * delete (c); **
 * cout<<*c; atentie! rezultatul afisat nu are nicio legatura cu valoarea calculata anterior, spatiul de memorie a fost dezafectat **


 * @ListeAlocateDinamic**