Diferență între revizuiri ale paginii „PC Laborator 12”
De la WikiLabs
Jump to navigationJump to search (Pagină nouă: = Obiective = La sfârșitul acestui laborator studenții vor fi capabili: * să definească și să utilizeze tipuri de date pointer; * să folosească pointeri pentru a putea mo...) |
|||
| Linia 6: | Linia 6: | ||
* să aloce, să folosească și să elibereze memorie HEAP, în mod dinamic; | * să aloce, să folosească și să elibereze memorie HEAP, în mod dinamic; | ||
* să utilizeze <code>valgrind</code> pentru a diagnostica pierderile de memorie. | * să utilizeze <code>valgrind</code> pentru a diagnostica pierderile de memorie. | ||
| + | |||
| + | = Tipuri de date pointer = | ||
| + | |||
| + | Un '''pointer''' reprezintă o variabilă care stochează o adresă în memoria dedicată aplicației. Tipul variabilei de tip pointer specifică tipul datei care va fi găsit la adresa respectivă. | ||
| + | |||
| + | O variabilă de tip pointer se definește în felul următor: | ||
| + | |||
| + | <tip_data> * <nume_variabila>; | ||
| + | |||
| + | Spre exemplu: | ||
| + | |||
| + | <syntaxhighlight lang="c"> | ||
| + | int * pa; | ||
| + | </syntaxhighlight> | ||
| + | |||
| + | Variabila de tip pointer <code>pa</code> nu memorează un întreg, ci o adresă în memorie, iar de la adresa respectivă se poate citi un întreg. Acest lucru se numește indirectare simplă. | ||
Versiunea de la data 30 decembrie 2015 13:23
Obiective
La sfârșitul acestui laborator studenții vor fi capabili:
- să definească și să utilizeze tipuri de date pointer;
- să folosească pointeri pentru a putea modifica variabilele trimise ca argumente unor funcții;
- să aloce, să folosească și să elibereze memorie HEAP, în mod dinamic;
- să utilizeze
valgrindpentru a diagnostica pierderile de memorie.
Tipuri de date pointer
Un pointer reprezintă o variabilă care stochează o adresă în memoria dedicată aplicației. Tipul variabilei de tip pointer specifică tipul datei care va fi găsit la adresa respectivă.
O variabilă de tip pointer se definește în felul următor:
<tip_data> * <nume_variabila>;
Spre exemplu:
int * pa;
Variabila de tip pointer pa nu memorează un întreg, ci o adresă în memorie, iar de la adresa respectivă se poate citi un întreg. Acest lucru se numește indirectare simplă.