Bildirim
void free(void *ptr);
Açıklama
Daha önce malloc(), calloc() veya realloc() fonksiyonu ile tahsis edilen belleği boşaltır.
Eğer ptr parametresi daha önceden tahsis edilmiş olan bir bellek adresini göstermiyorsa, belirsiz sonuçlara neden olur. NULL bir değer taşıyorsa, fonksiyon herhangi bir işlem gerçekleştirmez.
Parametreler
ptr: Daha önce tahsis edilmiş olan bellek bölgesini gösterir.
Dönüş değeri
Yok.
Örnek
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int *ip, id;
ip = (int *) malloc(5 * sizeof(int));
for (id=0; id<5; id++) {
*(ip+id) = id+1;
printf("%p adresindeki değer: %d\n", (ip+id), *(ip+id));
}
free(ip);
}
Yukarıdaki örnekte, program aşağıdaki satırları ekrana yazar:
00CB1540 adresindeki değer: 1 00CB1544 adresindeki değer: 2 00CB1548 adresindeki değer: 3 00CB154C adresindeki değer: 4 00CB1550 adresindeki değer: 5
Yukarıdaki program, malloc() fonksiyonunu kullanarak 5 adet int değer için bellek tahsisi yapar ve her bellek adresine int bir değer atayarak bellek adreslerini ve bu adreslere atadığı değerleri ekrana yazar. Daha sonra, free() fonksiyonuyla tahsis edilen belleği boşaltır.