Zeiger speichern Adressen (int* p = &x;, Zugriff mit *p). Dynamischen Speicher legst du in modernem C++ nicht mit new/delete von Hand an, sondern mit Smart Pointern: std::unique_ptr (ein Besitzer) und std::shared_ptr (geteilter Besitz). Sie geben den Speicher automatisch frei.
So vermeidest du Speicherlecks und doppeltes Freigeben.
#include <iostream>
#include <memory>
struct Person {
std::string name;
int alter;
};
int main() {
int x = 5;
int* p = &x;
*p = 6;
std::cout << x << "\n"; // 6
auto mia = std::make_unique<Person>(Person{"Mia", 17});
std::cout << mia->name << "\n";
} // mia wird hier automatisch freigegebenMerke
&xAdresse,*pWert dahinterunique_ptrundshared_ptrstattnew/delete->greift über einen Zeiger auf Member zu
Aufgabe
Lege mit `make_unique` ein Objekt an und gib ein Feld aus.