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
valgrind
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:
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ă.