Sunteți pe pagina 1din 11

...

.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
.
......
Fundamentele programrii
Curs 9
ef lucr.dr.ing. GENGE Bla
Universitatea Petru Maior, Departamentul de Informatic
Trgu Mure, Romnia
bela.genge@ing.upm.ro
ef lucr.dr.ing. GENGE Bla Fundamentele programrii
...
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
Alocarea dinamic
Pointerii permit utilizarea variabilelor dinamice
Variabilele dinamice sunt create i eliminate la cererea programatorului
Dimensiunea memoriei alocate este decis n timpul execuiei i nu la
compilare
Zona de memorie: heap
ef lucr.dr.ing. GENGE Bla Fundamentele programrii
...
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
Funcii uzuale C standard
void* malloc(size_t dim): aloc o zon de memorie de dim. dim
octei. ntoarce un pointer la zona alocat sau NULL.
void free(void* bloc): elibereaz zona de memorie alocat cu
una din funciile: malloc, calloc, sau realloc
void* calloc(size_t nr, size_t dim): aloc memorie pentru nr
elemente, ecare de dimensiunea dim. Fiecare element este iniializat
cu 0.
void* realloc(void* bloc, size_t dim): realoc o zon de
memorie heap. Zona anterioar este eliberat.
ef lucr.dr.ing. GENGE Bla Fundamentele programrii
...
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
Exemple
.
Exemplu1
..
......
char* str = NULL;
str = (char*)malloc(100*sizeof(char));
if ( NULL == str ) {
exit(1);
}
free(str);
.
Exemplu2
..
......
int* v = NULL;
v = (int*)malloc(100*sizeof(int));
if ( NULL == v ) {
exit(1);
}
free(v);
ef lucr.dr.ing. GENGE Bla Fundamentele programrii
...
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
Exerciii
S se aloce i dealoce memorie pentru 1000 de ntregi fr semn. S
se iniializeze toate elementele cu valoarea 0.
S se citeasc N numere ntregi de la tastatur ntr-un vector alocat
dinamic.
S se implementeze citirea unui ir de caractere de la tastatur
alocnd exact numrul de octei necesari.
ef lucr.dr.ing. GENGE Bla Fundamentele programrii
...
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
Exerciii
S se aloce i dealoce memorie pentru 1000 de ntregi fr semn. S
se iniializeze toate elementele cu valoarea 0.
S se citeasc N numere ntregi de la tastatur ntr-un vector alocat
dinamic.
S se implementeze citirea unui ir de caractere de la tastatur
alocnd exact numrul de octei necesari.
ef lucr.dr.ing. GENGE Bla Fundamentele programrii
...
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
Exerciii
S se aloce i dealoce memorie pentru 1000 de ntregi fr semn. S
se iniializeze toate elementele cu valoarea 0.
S se citeasc N numere ntregi de la tastatur ntr-un vector alocat
dinamic.
S se implementeze citirea unui ir de caractere de la tastatur
alocnd exact numrul de octei necesari.
ef lucr.dr.ing. GENGE Bla Fundamentele programrii
...
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
Funcii C++ pentru alocarea dinamic
new: aloc o zon de memorie.
delete[] i delete: terge o zon de memorie.
ef lucr.dr.ing. GENGE Bla Fundamentele programrii
...
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
Exemple
.
Exemplu1
..
......
char* str = NULL;
str = new char[100];
if ( NULL == str ) {
exit(1);
}
delete[] str;
.
Exemplu2
..
......
int* v = NULL;
v = new int[100];
if ( NULL == v ) {
exit(1);
}
delete[] v;
ef lucr.dr.ing. GENGE Bla Fundamentele programrii
...
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
Pointeri la pointeri
Pointeri care adreseaz ali pointeri
.
Exemplu
..
......
int n = 10;
int* p1 = NULL;
int** p2 = &p1;
*p2 = &n;
**p2 = 0;
cout << &p2;
cout << p2;
cout << *p2;
cout << **p2;
cout << n;
ef lucr.dr.ing. GENGE Bla Fundamentele programrii
...
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
...
.
.
.
..
.
.
.
..
.
.
.
..
Exerciii
S se aloce i dealoce dinamic memorie pentru o matrice de NxM
ntregi. Matricea este folosit pentru citiri de la tastatur.
S se citeasc N iruri de caractere de la tastatur. Memoria va
alocat dinamic printr-un pointer ctre un tablou de pointeri. S se
elibereze memoria ocupat n nal.
S se elimine (dealoce memorie) pentru ultimul ir de
caractere/ultima linie dintr-o matrice n x m.
ef lucr.dr.ing. GENGE Bla Fundamentele programrii

S-ar putea să vă placă și