Statik ve Dinamik Bellek Ayırma Arasındaki Fark

Temel Fark - Statik ve Dinamik Bellek Ayırma
 

Programlamada, hesaplama verilerini saklamak gerekir. Bu veriler bellekte saklanır. Bilgisayar programlamasında veri depolamak için bellek konumları değişkenler olarak bilinir. Değişkenlerin belirli bir veri türü vardır. Bu nedenle, programları çalıştırmak için bellek ayrılır. Bellek iki şekilde tahsis edilebilir. Statik bellek ayırma ve Dinamik bellek ayırmadır. Statik bellek ayırmada, bellek ayrıldıktan sonra değiştirilemez. Bellek yeniden kullanılamaz. Ancak dinamik bellek ayırmada, bellek ayrıldıktan sonra değiştirilebilir. temel fark statik ve dinamik bellek ayırma arasında bellek ayrıldıktan sonra statik bellek ayırmada, dinamik bellek ayırmada bellek boyutu sabitlenir, bellek ayrıldıktan sonra bellek boyutu değiştirilebilir.

İÇİNDEKİLER

1. Genel Bakış ve Temel Fark
2. Statik Bellek Ayırma Nedir?
3. Dinamik Bellek Ayırma Nedir?
4. Statik ve Dinamik Bellek Ayırma Arasındaki Benzerlikler
5. Yan Yana Karşılaştırma - Tablo Şeklinde Statik ve Dinamik Bellek Ayırma
6. Özet

Statik Bellek Ayırma Nedir?

Statik bellek ayırmada, ayrılan bellek sabittir. Bellek ayrıldıktan sonra değiştirilemez. Bellek artırılamaz veya azaltılamaz. Örneğin, programcı int x yazarsa C dilinde, bu değişkenin bir tamsayı değeri saklayabileceği anlamına gelir. Bayt sayısı bilgisayara bağlıdır. Diziler de olabilir. Örneğin. int x [5]; Bu x, aynı türden bir veri dizisini saklayabilen bir dizidir. Beş tamsayı elemanı saklayabilir. Beşten fazla eleman depolayamaz. Java'da bir dizi oluşturulabilir, int arr [] = new int [5]; 'Arr' dizisi 5 tamsayı değeri saklayabilir ve bundan daha fazlasını depolayamaz.

Şekil 01: Bellek Ayırma Yöntemleri

Statik bellek ayırmada, değişkenler ayrıldıktan sonra kalıcı kalırlar. İlk ayırmadan sonra programcı belleği yeniden boyutlandıramaz. Programcı 10 eleman saklayabilen bir dizi ayırdıysa, belirtilen miktardan daha fazla değer depolamak mümkün değildir. Programcı başlangıçta 10 eleman alabilen bir dizi tahsis ettiyse, ancak sadece 5 elemente ihtiyaç duyduysa, bellek israfı olur. Bu belleğe artık ihtiyaç duyulmuyor, ancak belleği yeniden kullanmak da mümkün değil. Statik bellek tahsisi sabittir, ancak uygulama basit ve kolaydır ve ayrıca hızlıdır.

Dinamik Bellek Ayırma Nedir??

Bazen belleğin boyutunu değiştirmek gerekebilir. Böylece bellek dinamik olarak tahsis edilebilir. Veri öğelerinin eklenmesine ve silinmesine bağlı olarak, bellek büyüyebilir veya küçülebilir. Dinamik bellek ayırma olarak bilinir.

C dilinde, stdlib.h başlık dosyasında, dinamik bellek ayırma için dört işlev vardır. Bunlar calloc, malloc, realloc ve ücretsizdir. Malloc () işlevi, gerekli boyutta bayt ayırır ve ayrılan belleğin ilk baytını işaret ederek bir geçersiz işaretçi döndürür. Calloc () işlevi gerekli boyutta bayt ayırır ve bunları sıfıra başlatır. Ardından belleğe bir boş işaretçi döndürür. Free () işlevi, ayrılan belleği yeniden ayırmak için kullanılır. Ve realloc işlevi önceden tahsis edilen belleği değiştirebilir. Calloc veya malloc kullanılarak bellek tahsis edildikten sonra bellek boyutu sabittir, ancak realloc işlevi kullanılarak artırılabilir veya azaltılabilir. Java'da koleksiyonlar dinamik bellek ayırma için kullanılabilir.

Dinamik bellek ayırmanın ana avantajı, bellek tasarrufu sağlamasıdır. Programcı belleği ayırabilir veya gerektiğinde serbest bırakabilir. Bellek, yürütme sırasında yeniden tahsis edilebilir ve gerekli olmadığında belleği boşaltabilir. Dinamik bellek ayırma, statik bellek ayırmadan daha etkilidir. Bir dezavantaj, dinamik bellek ayırma uygulamasının karmaşık olmasıdır.

Statik ve Dinamik Bellek Ayırma Arasındaki Benzerlikler Nelerdir??

  • Her ikisi de bellek ayırma mekanizmalarıdır.
  • Her ikisi de programcı tarafından manuel olarak uygulanmalıdır..

Statik ve Dinamik Bellek Ayırma Arasındaki Fark Nedir??

Statik ve Dinamik Bellek Ayırma

Statik bellek ayırma, bellek ayırma yöntemidir ve bellek ayrıldıktan sonra sabitlenir. Dinamik bellek ayırma, bellek ayırma yöntemidir ve bellek ayrıldıktan sonra değiştirilebilir.
 değişiklik
Statik bellek ayırmada, ilk ayırmadan sonra yeniden boyutlandırmak mümkün değildir. Dinamik bellek ayırmada, bellek buna göre simge durumuna küçültülebilir veya ekranı kaplayabilir.
uygulama
Statik bellek tahsisinin uygulanması kolaydır. Dinamik bellek ayırma uygulaması karmaşıktır.
 hız
Statik bellekte, ayırma yürütme dinamik bellek ayırmadan daha hızlıdır. Dinamik bellekte, ayırma yürütme statik bellek ayırmadan daha yavaştır.
Bellek Kullanımı
Statik bellek ayırmada, kullanılmayan belleği yeniden kullanamazsınız. Dinamik bellek ayırma, belleğin yeniden kullanılmasını sağlar. Programcı gerektiğinde daha fazla bellek ayırabilir. Gerektiğinde hafızayı serbest bırakabilir.

özet - Statik ve Dinamik Bellek Ayırma

Programlamada, Statik bellek tahsisi ve dinamik bellek tahsisi, bellek tahsisi için iki mekanizmadır. Statik ve dinamik bellek ayırma arasındaki fark, bellek ayrıldıktan sonra statik bellek ayırmada, dinamik bellek ayırmada bellek boyutunun sabitlenmesidir, bellek ayrıldıktan sonra bellek boyutu değiştirilebilir. Programcı, uygulamaya bağlı olarak belleğin statik mi yoksa dinamik mi olacağına karar verebilir.

Statik ve Dinamik Bellek Ayırma PDF dosyasını indirin

Bu makalenin PDF sürümünü indirebilir ve alıntı notuna göre çevrimdışı amaçlar için kullanabilirsiniz. Lütfen PDF sürümünü buradan indirin: Statik ve Dinamik Bellek Ayırma Arasındaki Fark

Referans:

1- Kayal, Somnath. “SOMNATH KAYAL.” Statik Bellek Ayırma ile Dinamik Bellek Ayırma Arasındaki Fark, 1 Ocak 1970. Buradan erişilebilir 
2.tutorialspoint.com. “C'deki diziler.” Nokta. Burada mevcut 
3.nareshtechnologies. Statik Bellek ve Dinamik Bellek Karşılaştırması | C Dil Eğitimi, Naresh i Technologies, 19 Eylül 2016. Buradan ulaşabilirsiniz