0Pricing
C Academy · Ders

Dinamik bellek ayırma

Belleği dinamik olarak yönetmek için malloc, calloc, realloc ve free gibi fonksiyonları keşfedin

Dinamik bellek ayırma, CoddyKit'te ücretsiz bir C Academy dersidir. Bu, 3 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, C Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. C Academy kursu toplamda 3 dersten oluşur.

Dinamik Bellek Ayırma

Dinamik Bellek Ayırma

C dilinde dinamik bellek ayırma, derleme zamanı yerine çalışma zamanında bellek ayırmanıza olanak tanır.

Bu derste şunları öğreneceksiniz:

  • malloc, calloc ve realloc kullanarak nasıl bellek ayrılacağını.
  • Ayrılan belleğin free kullanılarak nasıl serbest bırakılacağını.
  • Bellek sızıntılarının nasıl önleneceğini.
Dinamik bellek ayırma — resim 1

Dinamik Bellek Ayırma Nedir?

Dinamik Bellek Ayırma Nedir?

Normalde değişkenler için bellek, derleme zamanında ayrılır.

Dinamik bellek ayırmada bellek, özel işlevler kullanılarak programın yürütülmesi sırasında ayrılır.

Bu yöntem, derleme zamanında boyutu bilinmeyen dizileri veya yapıları yönetmek için kullanışlıdır.

malloc() ile Bellek Ayırma

malloc() ile Bellek Ayırma

malloc işlevi bellek ayırır ancak belleği başlatmaz.

Söz dizimi:

ptr = (int*) malloc(size * sizeof(int));

Ayrılan belleğe bir işaretçi döndürür veya ayırma başarısız olursa NULL döndürür.

Örnek: malloc() Kullanma

Örnek: malloc() Kullanma

Bu program, malloc kullanarak nasıl bellek ayrılacağını gösterir.

#include <stdio.h>
#include <stdlib.h>

int main() {
    int *ptr = (int*) malloc(5 * sizeof(int));
    if (ptr == NULL) {
        printf("Memory allocation failed!\n");
        return 1;
    }
    for (int i = 0; i < 5; i++) {
        ptr[i] = i * 10;
        printf("%d ", ptr[i]);
    }
    free(ptr);
    return 0;
}

calloc() ile Bellek Ayırma

calloc() ile Bellek Ayırma

calloc işlevi bellek ayırır ve belleği sıfırlarla başlatır.

Söz dizimi:

ptr = (int*) calloc(num_elements, sizeof(int));

Ayrılan belleğe bir işaretçi döndürür veya ayırma başarısız olursa NULL döndürür.

Örnek: calloc() Kullanma

Örnek: calloc() Kullanma

Bu program, calloc kullanarak nasıl bellek ayrılacağını gösterir.

#include <stdio.h>
#include <stdlib.h>

int main() {
    int *ptr = (int*) calloc(5, sizeof(int));
    if (ptr == NULL) {
        printf("Memory allocation failed!\n");
        return 1;
    }
    for (int i = 0; i < 5; i++) {
        printf("%d ", ptr[i]); // All elements initialized to 0
    }
    free(ptr);
    return 0;
}

realloc() ile Belleği Yeniden Ayırma

realloc() ile Belleği Yeniden Ayırma

realloc işlevi, daha önce ayrılmış belleğin boyutunu değiştirir.

Söz dizimi:

ptr = realloc(ptr, new_size * sizeof(int));

Yeni bellek bloğuna bir işaretçi döndürür.

free() ile Belleği Serbest Bırakma

free() ile Belleği Serbest Bırakma

Bellek sızıntılarını önlemek için ayrılan bellek free() kullanılarak serbest bırakılmalıdır.

Söz dizimi:

free(ptr);

Bellek serbest bırakıldıktan sonra işaretçiye erişilmemelidir.

Özet

Özet

Bu derste şunları öğrendiniz:

  • malloc ve calloc kullanarak nasıl bellek ayrılacağını.
  • realloc kullanarak belleğin nasıl yeniden ayrılacağını.
  • Bellek sızıntılarını önlemek için free kullanarak belleğin nasıl serbest bırakılacağını.

Sonraki bölümde C dilinde işaretçi dizilerini ve işlev işaretçilerini inceleyeceğiz!

Dinamik bellek ayırma — resim 10

Sıkça Sorulan Sorular

“Dinamik bellek ayırma” dersi ücretsiz mi?

Evet — “Dinamik bellek ayırma” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve C Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. C Academy kursu toplamda 3 dersten oluşur.

“Dinamik bellek ayırma” dersinde ne öğreneceğim?

Belleği dinamik olarak yönetmek için malloc, calloc, realloc ve free gibi fonksiyonları keşfedin C Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

C Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te C Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 3 dersinin 2. dersidir.

“Dinamik bellek ayırma” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu C Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her C Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. İşaretçilere giriş
  2. Dinamik bellek ayırma
  3. İşaretçi dizileri ve fonksiyon işaretçileri
← C Academy Sayfasına Dön