C++ programlamada, struct
ve pointer’ları bir araya getirerek dinamik bellek yönetimi, veri yapıları oluşturma ve işlemleri gerçekleştirme imkanınız bulunmaktadır.
#include <iostream> // Bir öğrenci bilgisini temsil eden struct struct Ogrenci { int numara; std::string ad; std::string soyad; }; int main() { // Bir Ogrenci struct'ı oluşturun Ogrenci ogrenci1; ogrenci1.numara = 123; ogrenci1.ad = "Ahmet"; ogrenci1.soyad = "Yilmaz"; // Ogrenci struct'ının pointer'ını oluşturun ve dinamik bellekten yer ayırın Ogrenci* ogrenciPtr = new Ogrenci; // Pointer üzerinden struct elemanlarına erişim ve değer atama ogrenciPtr->numara = 456; ogrenciPtr->ad = "Mehmet"; ogrenciPtr->soyad = "Demir"; // Pointer üzerinden struct elemanlarını ekrana yazdırma std::cout << "Ogrenci Bilgileri:" << std::endl; std::cout << "Numara: " << ogrenciPtr->numara << std::endl; std::cout << "Ad: " << ogrenciPtr->ad << std::endl; std::cout << "Soyad: " << ogrenciPtr->soyad << std::endl; // Dinamik bellekten ayrılan alanı serbest bırak delete ogrenciPtr; return 0; }
Bu örnekte, Ogrenci
adlı bir struct
tanımlanmıştır. Daha sonra, bu struct
türünden bir nesne (ogrenci1
) oluşturulmuş ve bir diğeri ise dinamik bellekten (new
operatörü ile) oluşturulmuştur (ogrenciPtr
). Pointer ile struct elemanlarına erişim ve değer atama işlemleri ->
operatörü ile yapılmıştır. Son olarak, dinamik bellekten ayrılan alan serbest bırakılmıştır (delete ogrenciPtr
). Dinamik bellek yönetimine dikkat etmek önemlidir, aksi halde bellek sızıntılarına neden olabilir.