C++ Pointer Nedir, CPP Dinamik Bellek Yönetimi

Merhaba bugün C++ pointer nedir? Dinamik bellek yönetimi nasıl yapılır? Bu konulardan bahsetmeye çalışacağım. İşaretleyiciler (Pointerlar) belleği tasarruflu şekilde kullanmak zorunda kaldığımız durumlarda imdadımıza yetişen yapılardır. Makalelerimde sıklıkla kullandığım Java dilinde pointerlar yer almaz. Bunun yerine Garbage Collector yapısı yer almaktadır. Yani bellek yönetimini bizim yerimize ilgili dilin yapısı zaten yapmaktadır. Fakat C++ dilinde işler böyle yürümez.

Pointer Nedir?

Bir değişken oluşturduğumuz sırada bunun bellekte belli bir yer kaplayacağını biliriz. Misal biz direkt bu değişkene erişmek istediğimizde bunun bellekteki adresini kullanmak zorundayız. Tıpkı birisinin bizimle direkt temasa geçebilmesi için adresimizi bilmek zorunda oluşu gibi.

Bu noktada Pointerlar karşımıza çıkmakta. Bir değişkenin adresini alıp pointerda saklarsak dinamik şekilde bellek yönetimi yapabiliriz. Örneğin bir sayı değişkenin bellek adresini pointera atarsak pointer ve sayı bellekte aynı yeri gösterir hangi birinin değerini değiştirirsek diğeri de değişir.

Kısaca Pointerların asıl kullanım amacı nesnelerimizi tekrar tekrar kopyalamak yerine sadece adresleri üzerinden bu değerlere erişip bellek tasarrufu yapmak içindir.

Bilmemiz Gerekenler

  • Pointer adres tutar, bir değişkenin veya objenin adresini işaret eder.
  • *” (Yıldız) simgesi Pointer oluşturmak için kullanılır.
  • &” (Ampersand) işaretiyle bir değişkenin adresini öğrenebiliriz.
  • Öğrendiğimiz bu adresi pointera atadıktan sonra pointer = değişken durumu olmakta çünkü ikisi de artık bellekte aynı yeri göstermekte.
  • Çok gerekmedikçe kesinlikle kullanılması tavsiye edilmemekte çünkü işler bir yerden sonra içinden çıkılamaz hale gelebilmektedir. Bunun yerine Referanslar alternatifini kullanabilirsiniz.
  • Eğer pointer artık kullanılmayacaksa nullptr eşitlenmelidir.

Pointer Nasıl Tanımlanır?

Pointer Örneği

Adresleri Görme ve Karşılaştırma

Pointer Değer Değişim Örneği

Pointer Array (Diziler) İlişkisi

Pointer İle Dizi Yazdırma

Dinamik Bellek Yönetimi Basit Örnek

Kaynaklar

Sonuna kadar okuduğunuz için teşekkürler umarım faydalı olmuştur. Bir sonraki yazımda C++ dilinde Referanslardan bahsetmeye çalışacağım. Pointer Nedir?, Neden Kullanılır?, Nasıl Kullanılır? gibi sorulara değindik bugün. Takıldığınız yerleri yorumlarda sorabilirsiniz. İyi günler dilerim.

Pointer vs Referans Yazımda ikisi arasındaki farkları görebilirsiniz.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir