C' de dinamik memory yönetiminde kullanılabilir 4 tane fonksiyon vardır. Bunlar:
- malloc
- calloc
- realloc
- free
fonksiyonlarıdır. Aşağıdaki örnekte tüm bu fonsiyonların kullanıldığı bir örnek program yazılmış, şimdi bu örnek üzerinden sırasıyla fonksiyonları incelemeye başlayalım.
malloc:
malloc fonksiyonu dinamik olan alan tahsis edilmesi için kullanılır. Prototipi aşağıdaki gibidir:
void *malloc(size_t size)
Fonksiyona parametre olarak verilen boyut kadar alan oluşturur ve alanın başlangıç adresini void * türünden bir adres olarak geri döndürür.
calloc:
calloc fonksiyonu da dinamik olan alan tahsis edilmesi için kullanılır. malloc ile farkı ise calloc’un ayırdığı hafıza bloğunun içeriğini sıfırlaması olmaktadır. Prototipi aşağıdaki gibidir:
void *calloc(size_t nitems, size_t size)
realloc:
realloc fonksiyonu ise daha önce malloc veya calloc fonksiyonu ile tahsis edilmiş olan alanı büyütmek için kullanılır.
void *realloc(void *ptr, size_t size)
birinci parametre malloc,calloc veya realloc ile tahsis edilmiş olan alanın başlagıç adresi ikinci parametre ise yeni boyut olarak bildirilmektedir.
Free:
Free fonksiyonu parametre olarak aldığı başlangıç adresinde tahsis edilmiş olan alanın boşaltılmasını sağlar.
En başta yazılan programın çıktısı da aşağıdaki gibidir.