Dinamik Bellek
Dinamik Bellek Kullanımı
New
- Programın çalışması esnasında özel komutlar kullanarak bellekten yer alınıp kullanılmasına dinamik bellek kullanımı adı verilir.
- Dinamik değişkenler için bellekte ayrılan yere yığın(heap) adı verilir.
- Dinamik bellek kullanımını new ve delete komutları ile gerçekleştiririz.
- New komutu ile bellekten istediğimiz veri tipi boyutunda bir yer alabiliriz.
Kullanımı:
new VeriTipi // Tek bir yer almak için kullanılır. new VeriTipi[ElemanSayisi] // Bir dizi yer almak için kullanılır. int *ptr; //ptr adlı tamsayı gösterecek bir gösterge tanımlanır ptr= new int; //Bellekten tamsayı kadar yer ayrılır,yerin adresi ptr’ye atanır *ptr=5; //Bellekten alınan yeni yere 5 atanır. /*Gösterge tanımı ve new komutu tek bir komut halinde de yazabiliriz.*/ int *ptr=new int; /*Dinamik bir değişkenin tanımlanması sırasında ilk ataması da yapılabilir.*/ int *ptr=new int (5); int *diz; // diz isimli tamsayı gösterecek bir gösterge tanımlanır diz=new int[5]; // Bellekten 5 tamsayı dizisi için yer ayrılır ve dizi adresine atanır diz[1]=8; // Bellekten alınan dizinin 1. elemanına 8 atanır.
Delete
- Bellekten new ile aldığımız yerler, kullanımları sonu erse veya program bitse bile yeniden kullanılamazlar. Bu nedenle bellekten aldığımız hücreleri program bitmeden delete komutu ile silmemiz gerekir.
Kullanımı:
delete göstergeAdı; delete [] göstergeAdı; int *g=new int; // g göstergesine tamsayı boyutunda yerin adresi atanır. *g=10; // g göstergesinin gösterdiği yere 10 atanır. cout<<*g; // atanan 10 değeri yazılır. delete g; // ayrılan yer belleğe geri döndürülür. int *diz; // diz isimli tamsayı gösterecek bir gösterge tanımlanır. diz=new int [5]; // Bellekten 5 tamsayı dizisi için yer ayrılır dizinin adresi diz’e atnır diz[1]=8; // Bellekten alınan dizinin 1. elemanına 8 atanır. delete [] diz; // yaratılan dizinin tüm elemanları belleğe geri döndürülür.
5
1
vote
Article Rating