C'de Dinamik Hafıza Yönetimi

07:33


C' de dinamik memory yönetiminde kullanılabilir 4 tane fonksiyon vardır. Bunlar:
  1. malloc
  2. calloc
  3. realloc
  4. 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.