🧠 1.1: Bellek Modeli - C vs Python

Bilgisayar verileri arka planda nasıl saklar?

💾 1. C / Java Modeli: Değer Tipleri (Value Types)

C dilinde değişkenler doğrudan değeri tutar. Bellek bitişiktir ve değerler kutuların içine yazılır.

Stack Belleği (Bitişik):

🐍 2. Python Modeli: Referans Tipleri (References)

Python listeleri değerleri değil, değerlerin bulunduğu adresleri (Pointer) tutar. Gerçek objeler Heap denilen dağınık bir bellek alanında yaşar.

Python Listesi (Adres Defteri)

Heap Belleği (Gerçek Objeler)

💡 Analiz: Python listesine erişmek iki aşamalıdır (Indirection): 1. Listeden adresi al -> 2. Adrese git ve değeri oku. Bu yüzden C dizilerinden daha yavaştır.

Statik vs Dinamik Tahsis

🧱 Statik (Stack Memory)

Boyutu önceden bellidir. Derleme zamanında ayrılır.

int dizi[5]; // Boyut SABİT!
  • Çok hızlıdır.
  • Boyutu değiştirilemez.
  • C dizileri buradadır.

🎈 Dinamik (Heap Memory)

Boyutu çalışma anında belirlenir.

int* dizi = malloc(n * 4);
  • Daha yavaştır (yer bulmak gerekir).
  • İstenildiği zaman büyütülüp küçültülebilir.
  • Python listeleri buradadır.