int *bayraktar; float *x, *y, *z
int *bozok = NULL;
new komutu ile bellekten istediğimiz veri Npi boyutunda bir yer alabiliriz.
int *ornek; //ornek adlı tamsayı gösterecek bir gösterge tanımlıyoruz. ornek = new int; //bellekten tamsayı kadar yer ayrılır, bu yerin adresi burada ornek'e aktarılır. *ornek = 9; //bellekten alınan yeni yere 9 atanır.
int *bozok=new int(9); //değişken tanımlanması esnasındada ilk ataması yapılabilir.
Dinamik bir Dizi Oluşturalım ve tekrar bellekten Silelim :
int *ornekdizi; //ornekdizimiz tamsayı gösterecek şekilde tanımlanır. ornekdizi=new int[10]; //bellekten 10 tamsayı dizisi için yer tahsis edilir ve dizinin adresi ornekdizi'ye atanır. ornekdizi[2]=16; //bellekten alınan dizinin 1.indeksteki elemanına 15 atanır.Bellekten new ile aldığımız yerler, kullanımları sona erdiğinde yeniden kullanılamazlar. Bu nedenle bellekten aldığımız hücreleri program bitmeden delete komutu ile silmemiz gerekir.
int *bozok=new int; //bozok göstergesine tamsayı boyutunda yerin adresi atanır. *bozok=16; //bozok göstergesinin gösterdiği yere 16 atanır. cout<<*bozok; //atanan 16 değeri yazdırılır. delete bozok; //ayrılan yer belleğe geri döndürülür.
int *ornekdizi; //ornekdizi adında tamsayı gösterecek bir gösterge tanımlanır. ornekdizi=new int[8]; //bellekten 8 tamsayı dizisi için yer ayrılır ve dizinin adresi ornekdizi'e atanır. ornekdizi[1]= 13; //bellekten alınan dizinin 1.indeksteki elemanına 13 atanır. delete [] ornekdizi; //oluşturulan dizinin tüm elemanları belleğe geri döndürülür.
Örnek:
#include <stdio.h> #include <conio.h> #include <cstdlib> #include <iostream> using namespace std; void oku(int[],int); int main(int argc, char *argv[]) { int mevcut, toplam=0; int max=0; int *notlar; cout<<"Sinif mevcudunu Giriniz: "; cin>>mevcut; //Sınıf mevcudunu okuyoruz notlar=new int[mevcut]; //Sınıf mevcudu kadar dinamik dizi yaratıyoruz oku(notlar,mevcut); for(int i=0; i<mevcut;i++) { toplam+=notlar[i]; if (notlar[i]>max) max=notlar[i]; } cout<<"Sinif Ortalamasi= "<<toplam/mevcut<<endl; cout<<"En yuksek not = "<<max<<endl; delete [] notlar; getch(); } void oku(int notDizi[], int boyut) //Notları okuduğumuz fonksiyon { cout<<"Notlari Giriniz:"; for(int i=0; i<boyut;i++) cin>>notDizi[i]; }
Kaynak