Warning: Undefined array key "HTTP_ACCEPT_LANGUAGE" in /var/www/vhosts/bilgigunlugum.net/httpdocs/index.php on line 43
C Programlama

BG MVC Model View Controller eğitim serisi yayında...

Ana sayfa > Programlama > C Programlama > C standart kütüphanesi > <stdlib.h> > malloc

malloc() fonksiyonu

Bildirim

void* malloc(size_t size);

Açıklama

Boyutu byte olarak ifade edilen size parametre değeri kadar bir bellek bloğunu tahsis eder ve bellek bloğunun başlangıç adresini gösteren bir işaretçi geri döndürür.

Yeni tahsis edilen bellek bloğuna herhangi bir ilk değer verilmez.

malloc() fonksiyonunun en önemli özelliği bir işaretçiye bir değer atamadan önce bir değişken adresi atama gereksinimini ortadan kaldırmış olmasıdır. Bunun nedeni, malloc() fonksiyonunun tahsis ettiği belleğin başlangıç adresini otomatik olarak işaretçiye geri vermesidir.

Parametreler

size: Tahsis edilecek byte miktarını gösterir.

Dönüş değeri

Başarı durumunda tahsis edilen belleğin başlangıç adresini geri döndürür. Bellek sorunlarını engellemek için, gerekli işlemler yapıldıktan sonra, bu işaretçi free() veya realloc() fonksiyonu ile boşaltılmalıdır.

Hata durumunda, NULL bir işaretçi geri döndürülür.

Örnek


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

int main (void) {
    char *cp;

    /* Bellek tahsisi */
    cp = (char*) malloc(20);
    strcpy(cp, "Bilgisayar");
    printf("Karakter dizisi: %s", cp);

    /* Bellek boşaltma */
	free(cp);

    return 0;
}

Yukarıdaki örnekte, program aşağıdaki satırı ekrana yazar:

Karakter dizisi: Bilgisayar

Yukarıdaki program, malloc() fonksiyonu ile 20 byte boyutunda bir bellek tahsis eder. Bu belleğe kopyaladığı karakter dizisini ekrana yazdıktan sonra free() fonksiyonu belleği boşaltır.