Documente Academic
Documente Profesional
Documente Cultură
Sintaxa:
delete tipdata_pointer;
delete [nr_elem] tipdata_pointer; //eliberarea memoriei pentru tablouri
Tipdata reprezinta tipul datei (predefinit sau obiect) pentru care se aloca dinamic
memorie, iar tipdata_pointer este o variabila pointer catre tipul tipdata.
Pentru a putea afla memoria RAM disponibila la un moment dat, se poate utiliza
functia coreleft:
unsigned coreleft(void);
int *pint;
pint=new int;
//prelucrari cu *pint
delete pint;
double *p;
p=new double(-7.2);
//prelucrari cu *p
delete p;
Exercitiu: Sa se aloce dinamic memorie pentru un vector de n elemente reale.
int n;
double *vector;
cin>>n;
vector=new double[m];
//prelucrari cu vector de exemplu vector[3]=4 etc.
delete [n] vector; // delete vector va dezaloca numai prima componenta
Exercitiu: Sa se aloce dinamic memorie pentru o matrice cu 3 linii si 5 coloane de
tip double.
double (*a)[5]=new double [3][5];
//prelucrari cu a de exemplu a[2][2]==4.9 etc.
delete [3] a;
struct articol
{int nr;
char c;
};
articol *pa;
pa=new articol;
cout<<endl<<"nr=";cin>>pa->nr;
cout<<endl<<"caracterul ";cin>>pa->c;
cout<<endl<<pa->nr<<" "<<pa->c<<" tot la adresa "<<pa<<endl;
delete pa;
Probleme propuse:
4. Se citesc elementele unui vector alocat dinamic. Scrieti un program C++ care
calculeaza si afiseaza suma tuturor elementelor vectorului.
1. Se citesc doua numere naturale.Scrieti un program C++ care calculeaza si afiseaza
suma celor doua numere folosind variabile alocate dinamic.
1. #include <iostream>
2. using namespace std;
3.
4. int *pa,*pb,*pc;
5.
6. int main()
7. {
8. pa=new(int);
9. pb=new(int);
10. pc=new(int);
11. cout<<"a=";
12. cin>>*pa;
13. cout<<"b=";
14. cin>>*pb;
15. *pc=*pa+*pb;
16. cout<<"c="<<*pc<<endl;
17. //cout<<sizeof(pc)<<sizeof(pb)<<sizeof(pc);
18. delete(pa);
19. delete(pb);
20. delete(pc);
21. }
1. #include <iostream>
2. using namespace std;
3.
4. int a,b,c;
5. int *pa,*pb,*pc;
6.
7. int main()
8. {
9. pa=&a;
10. pb=&b;
11. pc=&c;
12. cin>>*pa>>*pb;
13. *pc=(*pa)*(*pb);
14. cout<<"c="<<*pc;
15. }
3. Se citesc doua numere naturale.Scrieti un program C++ care calculeaza si afiseaza
suma celor doua numere folosind o variabila de tip structura alocata dinamic.
1. #include <iostream>
2. using namespace std;
3.
4. struct P
5. {
6. int a;
7. int b;
8. int s;
9. }a;
10. P* pa;
11. int main()
12. {
13. pa=new(P);
14. cin>>pa->a;
15. cin>>pa->b;
16. pa->s=(pa->a)+(pa->b);
17. cout<<pa->s;
18. delete(pa);
19. }
4. Se citesc elementele unui vector alocat dinamic. Scrieti un program C++ care
calculeaza si afiseaza suma tuturor elementelor vectorului.
1. #include <iostream>
2. using namespace std;
3.
4. int *pa[101];
5. int n,s;
6.
7. int main()
8. {
9. int i;
10. cin>>n;
11. for(i=1;i<=n;i++)
12. {
13. pa[i]=new(int);
14. cin>>*pa[i];
15. s+=*pa[i];
16. }
17. cout<<s<<endl;
18. for(i=1;i<=n;i++)
19. {
20. delete(pa[i]);
21. }
22. }