Malloc vs. Calloc

Yazar: Laura McKinney
Yaratılış Tarihi: 4 Nisan 2021
Güncelleme Tarihi: 15 Mayıs Ayı 2024
Anonim
Calloc vs malloc | GeeksforGeeks
Video: Calloc vs malloc | GeeksforGeeks

İçerik

Malloc ve calloc arasındaki anahtar fark, malloc'un istenen tek bir bellek bloğu atamadığı halde calloc, istenen bellek bloğuna birden fazla blok atar.


Bellek ayırma, bilgisayar bilimlerinde çok önemli bir kavramdır, bilgisayar programlamasında, kodunuz için bir bellek oluşturmanız gerekir. Malloc ve calloc'un çalışmak için tartışmalara ihtiyacı var. Malloc sadece bir argümana ihtiyaç duyarken, calloc iki argümana ihtiyaç duyar. Malloc ve calloc, C programlaması için kullanılır ve hafıza ayırma ve ayırma için kullanılırlar. Dinamik bellek ayırma, bilgisayar programlamasında en önemli kavramdır. Bir program yazmadan önce bilgisayara bellek atamanız gerekir, bu bellek yürütme için kullanılır.

Malloc, bayt cinsinden bir bellek bloğu atamak için kullanılan bir fonksiyondur. Bloğun büyüklüğü kullanıcı tarafından belirlenir ve kodun yazılmasından önce hafıza bloğunun büyüklüğünün belirlenmesi çok önemlidir. Hafızanın tahsisi RAM tarafından verilir. Yani program, bellek tahsisi için RAM ister. Bir istek yaptığınızda ve bu isteğin malloc işlevinden daha kabul edildiğini ve başarılı olduğu söylenir ve bellek tahsis edilir. Malloc işlevi belleği atayamazsa, NULL döndürülür. Malloc işlevinin çalışması, her ikisi de bu işlev bellek ayırma atadığı için bir calloc işlevine çok benzer. Calloc, hafıza talebi için iki argüman alır. Calloc'da veri tipinin boyutunu atamamız gerekir. Calloc'taki iki bağımsız eleman virgülle ayrılır.


İçindekiler: Malloc ve Calloc arasındaki fark

  • Karşılaştırma Tablosu
  • Malloc
  • calloc
  • Anahtar Farklılıklar
  • Sonuç
  • Açıklayıcı Video

Karşılaştırma Tablosu

temelMalloccalloc
anlammalloc istenen hafızanın sadece bir bloğunu atar

İstenen hafızanın birden fazla bloğunu atamak için calloc.

 

Sözdizimi

Malloc'un sözdizimi

void * malloc (size_t size);

Calloc'un sözdizimi

void * calloc (size_t num, size_t boyut);

hızMalloc calloc'tan daha hızlıdırCalloc malloc'tan daha yavaştır
Başlatma malloc (), ayrılan hafızayı temizlemez ve başlatmaz.Tahsis edilen hafıza calloc () kullanılarak sıfıra başlatılır.

Malloc

Malloc, bayt cinsinden bir bellek bloğu atamak için kullanılan bir fonksiyondur. Bloğun büyüklüğü kullanıcı tarafından belirlenir ve kodun yazılmasından önce hafıza bloğunun büyüklüğünün belirlenmesi çok önemlidir. Hafızanın tahsisi RAM tarafından verilir. Yani program, bellek tahsisi için RAM ister. Bir istek yaptığınızda ve bu isteğin malloc işlevinden daha kabul edildiğini ve başarılı olduğu söylenir ve bellek tahsis edilir. Malloc işlevi belleği atayamazsa, NULL döndürülür.


calloc

Malloc işlevinin çalışması, her ikisi de bu işlev bellek ayırma atadığı için bir calloc işlevine çok benzer. Calloc, hafıza talebi için iki argüman alır. Calloc'da, veri tipinin boyutunu atamamız gerekir. Calloc'taki iki bağımsız eleman virgülle ayrılır.

Anahtar Farklılıklar

  1. Malloc talep edilen hafızanın sadece bir bloğunu atarken calloc istenen hafızanın birden fazla bloğunu atar.
  2. Malloc'un sözdizimi: void * malloc (size_t size); Calloc'un sözdizimi void * calloc iken (size_t num, size_t size);
  3. Malloc calloc'tan daha hızlı iken Calloc malloc'tan daha yavaştır.
  4. malloc () ayrılmış belleği temizlemez ve başlatmaz, ancak atanmış bellek calloc () kullanılarak sıfır olarak başlatılır.

Sonuç

Yukarıdaki bu yazıda, malloc ve calloc ve uygulama ile arasındaki açık farkı görüyoruz.

Açıklayıcı Video