MeditatiiDirect.ro Logo
MeditatiiDirect.ro
Educație la un click distanță
MeditatiiMateriiAdmitereTutorialePregatire BACSubiecte BACVariante BACBlog
Informaticăliceumediu

Pointeri și Alocare Dinamică C++ — Tutorial Complet

Tutorial complet despre pointeri și alocare dinamică în C++: sintaxă, operații, liste înlănțuite, new/delete și gestionarea memoriei. Pentru BAC și titularizare.

7 zile în urmă
0 vizualizări
55 minute

Pointeri și Alocare Dinamică C++ — Ghid Complet

Ce sunt Pointerii?

Un pointer este o variabilă care stochează adresa de memorie a altei variabile.

1int x = 10;
2int* p = &x;   // p conține adresa lui x
3cout << x;     // Afișează: 10
4cout << &x;    // Afișează: adresa lui x (ex: 0x7fff...)
5cout << p;     // Afișează: aceeași adresă
6cout << *p;    // Afișează: 10 (valoarea de la adresa p)

Operații cu Pointeri

Declarare și Inițializare

1int* p;          // pointer la int (neinițializat — periculos!)
2int* p = nullptr; // pointer null (recomandat)
3int* p = &x;    // pointer la variabila x
4
5double* d;      // pointer la double
6char* c;        // pointer la char

Dereferenciere și Modificare

1int x = 5;
2int* p = &x;
3*p = 20;       // modifică x prin pointer
4cout << x;     // Afișează: 20

Pointeri la Funcții (transmitere prin referință)

1void inmultesteCu2(int* p) {
2    *p *= 2;
3}
4
5int main() {
6    int x = 5;
7    inmultesteCu2(&x);
8    cout << x;   // Afișează: 10
9}

Alocare Dinamică: new și delete

1// Alocare unui singur element
2int* p = new int;          // alocă memorie pentru un int
3int* q = new int(42);      // alocă și inițializează cu 42
4*p = 100;
5delete p;                  // eliberează memoria!
6
7// Alocare de array dinamic
8int n = 10;
9int* arr = new int[n];     // array dinamic de n elemente
10arr[0] = 5;
11arr[1] = 3;
12delete[] arr;              // eliberează array-ul! (se folosește delete[])

Greșeli frecvente cu alocare dinamică:

1// ❌ Memory leak — uit să eliberez memoria
2int* p = new int(5);
3// ... (fără delete p) — MEMORY LEAK!
4
5// ❌ Double free — eliberez de două ori
6delete p;
7delete p;  // COMPORTAMENT NEDEFINIT!
8
9// ❌ Dangling pointer — folosesc pointer după delete
10delete p;
11cout << *p;  // COMPORTAMENT NEDEFINIT!
12
13// ✅ Corect
14delete p;
15p = nullptr;  // pointeaz la null după delete

Liste Înlănțuite în C++

1struct Nod {
2    int valoare;
3    Nod* urmator;
4    Nod(int v) : valoare(v), urmator(nullptr) {}
5};
6
7class ListaInlantuita {
8    Nod* cap;
9public:
10    ListaInlantuita() : cap(nullptr) {}
11    
12    void inserareInceput(int val) {
13        Nod* nou = new Nod(val);
14        nou->urmator = cap;
15        cap = nou;
16    }
17    
18    void afisare() {
19        Nod* current = cap;
20        while (current) {
21            cout << current->valoare << " -> ";
22            current = current->urmator;
23        }
24        cout << "null\n";
25    }
26    
27    ~ListaInlantuita() {
28        while (cap) {
29            Nod* temp = cap;
30            cap = cap->urmator;
31            delete temp;
32        }
33    }
34};

Aritmetica Pointerilor

1int arr[] = {10, 20, 30, 40, 50};
2int* p = arr;    // p pointează la arr[0]
3
4cout << *p;      // 10
5p++;             // p pointează la arr[1]
6cout << *p;      // 20
7p += 2;          // p pointează la arr[3]
8cout << *p;      // 40
9cout << *(arr + 1);  // 20 — echivalent cu arr[1]

Smart Pointers C++ (Modern C++)

1#include <memory>
2
3// unique_ptr — proprietar unic
4unique_ptr<int> p = make_unique<int>(42);
5cout << *p;
6// auto-delete când iese din scope!
7
8// shared_ptr — proprietar multiplu
9shared_ptr<int> p1 = make_shared<int>(100);
10shared_ptr<int> p2 = p1;  // ambii dețin resursa
11// auto-delete când toți shared_ptr sunt distruși

Pointerii sunt un subiect esential la BAC informatica (mai ales la studiul listelor înlantuite) si la titularizare (structuri de date dinamice).

Tutorialul te-a ajutat?

Dacă ai nevoie de ajutor personalizat, găsește un profesor calificat pentru meditații

MeditatiiDirect.ro Logo
MeditatiiDirect.ro

Platforma educationala din Romania pentru meditatii particulare. Profesori verificati, recenzii reale, inscriere gratuita.

Cauta sau publica anunturi gratuit pentru toate materiile scolare.

Meditatii

  • Meditatii
  • Meditatii Matematica
  • Meditatii Informatica
  • Meditatii Romana
  • Meditatii Engleza
  • Anunturi Meditatii
  • Meditatii Online
  • Ore Online
  • Meditatii BAC
  • Meditatii Bucuresti
  • Meditatii Cluj-Napoca
  • Meditatii Timisoara
  • Meditatii Iasi
  • Meditatii Fizica
  • Meditatii Chimie
  • Meditatii Biologie

Materii Populare

  • Matematică
  • Limba Română
  • Limba Engleză
  • Informatică
  • Fizică
  • Toate Materiile →

Platforma

  • Cum functioneaza
  • Pentru elevi si parinti
  • Pentru profesori
  • Intrebari frecvente
  • Despre noi
  • Publica anunt gratuit

Resurse

  • Profesor Particular
  • Pregatire BAC
  • Admitere Facultate
  • Grile UPB
  • Grile Medicina
  • Variante BAC 2026
  • Simulare BAC 2026
  • Subiecte BAC
  • Subiecte Admitere
  • Titularizare 2025
  • Tutoriale
  • Blog educational
  • Ore Online
  • Profesori Online
  • Contact

MeditatiiDirect.ro este o platforma educationala din Romania unde gasesti meditatii si profesori particulari verificati pentru matematica, limba romana, engleza, informatica, fizica, chimie si alte materii. Disponibil in Bucuresti, Cluj-Napoca, Timisoara, Iasi si toata Romania, inclusiv meditatii online. Publica sau gaseste anunturi meditatii gratuit, programeaza ore online cu profesori verificati, cauta un profesor particular sau incepe meditatii BAC si admiterea la facultate.

© 2026 MeditatiiDirect. Toate drepturile rezervate.