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.