Pointer Şeması

C++’ta pointer şeması, bir nesnenin bellekte nerede yaşadığını, hangi pointer’ın ona sahip olduğunu ve ne zaman serbest bırakılması gerektiğini anlamanın temel yoludur. Düşük seviyeli dillerde bellek yönetimi manuel olduğu için, yanlış yapılan her işlem memory leak (bellek sızıntısı), dangling pointer (boşta kalmış pointer) veya use-after-free gibi hatalara yol açabilir. Bellek sızıntısı, heap’te ayrılan bir bölgenin hiçbir pointer tarafından işaret edilmemesi […]

Programlama Dilleri Tarihi

1957 yılında, Fortran dili ile bilgisayar dünyası şu anki anlamıyla bir yazılım diline kavuşmuş oldu. Fortran (mathematical FORmula TRANslating system) adından da anlaşılacağı gibi genellikle matematiksel hesaplamalarda kullanılan bir dil olarak kendini kabul ettirmiştir. 1959 yılında ise yine büyük bir çığır açan COBOL geliştirilmiştir. 1960 yılında Algol 60 geliştirilmiştir ve 60’lı yıllarda en popüler yazılım dili olarak kendini göstermiştir. 1972 […]

A Basic Pointer Example

C++’ta pointer kavramı, dilin düşük seviyeli kontrol anlayışının temel parçasıdır. Burada artık yalnızca değerlerle değil, bu değerlerin bellekte nerede durduğu ile ilgilenilir. Pointer bir değeri değil, o değerin adresini taşır. Bu ayrım küçük görünür ama fonksiyon çağrılarında kimin neye dokunabildiğini belirler. Bir değeri fonksiyona gönderdiğinde kopya gönderilmiş olur. Bir pointer gönderildiğinde ise erişim gönderilir. Yani fonksiyon, çağıranın değişkenine doğrudan ulaşabilecek […]

Pass By Reference

C++’ta fonksiyon çağrılarında en temel ayrımlardan biri şudur: Fonksiyona bir değerin kendisini mi gönderiyorsun, yoksa o değerin kendisine erişimi mi veriyorsun. Bu ayrım küçük görünür ama yan etki, performans, API tasarımı ve hata ayıklama gibi konularda belirleyicidir. Pass by value, adından da anlaşılacağı gibi, değişkenin değerini kopyalayıp fonksiyona taşır. Fonksiyon kendi kopyası üzerinde çalışır. Bu yüzden fonksiyon içinde ne yapılırsa […]