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.
İçindekiler
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.