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.
