18 Aralık 2010 Cumartesi

c programlamada dinamik bellek kullanımı

Yorum Bırak
Örneğin bir array dizisi için 100 karakter uzunluğunda yer ayırıyoruz.Ancak bunun 5 tanesini kullanıyoruz.Kullanılmayan karakterler programın yavaşlamasına ve boş yere zaman harcamaya neden olur.Bu yüzden de kullanmadığımız belleği tekrar program sonunda silmemiz gerekir ki program akışı hızlı olabilsin. Yer ayırmak için malloc adı verilen fonksiyon kullanılır.Kullanımı şu şekildedir: return value malloc(size)
örneğin;
char *p;
p=(char *)malloc(100);
Burada char pointer cinsinden bir değişkene bellekte 100 karakterlik yer ayırdık.Ancak diyelimki bunun 3 adetini kullnıp gerii kalanını hafızdan silmek istiyoruz.O zaman da free() fonksiyonunu kullanmamız gerekir.Kullanımı:
free(değişken);
Örnek bir dinamik bellek ayırma programı ve hafızadan kullanılmayanı silme:
 int *pi = NULL;
pi = (int *)malloc(25 * sizeof(int));   /*  25 integer için bellekte yer ayırdık */
pi[0] = 5;
pi[1] = 2;
free(pi);  /* sadece 2 yer kullandık ve kullanılmayanları free ile sildik */
        

0 yorum:

Yorum Gönder