28 : CPP Dilinde new Operatörü ile Dinamik Dizi Oluşturma
cpp dilinde dinamik bellek kullanımı c diline göre daha kolay. Bir önceki örnekte c dilinde malloc yada calloc kullanarak bir dizi oluşturup rastgele sayılar atamıştık. Bunu cpp dilinde yapmak istersek new operatörü kullanabiliriz. new operatörü sadece dizi değil struct, class gibi birimleri de yaratmada kullanılabilir. Bu tiplerle örnekler yaptığımızda new operatörünün nasıl kullanıldığını da inceleyeceğiz.
Yine aynı şekilde bir dizi üretip rastgele sayılar atayıp bastıracağız. Sadece kaç adet sayı olacağını kullanıcıdan isteyeceğiz.
Burada malloc yerine new kullandık. Yine aynı şekilde bellek yaratmada sorun olmaması açısından null kontrolü yapıyoruz ki program da beklenmedik sonlanmalar görmeyelim. En son ise new ile yarattığımız alanı delete ile siliyoruz. Bu şekilde memory leak problemi yaşamıyoruz.
Bu örneğin cpp ile yazıldığına dikkat edelim. dosya uzantısı .cpp ve derleyicisi g++ olacaktır buna göre.
Yine aynı şekilde bir dizi üretip rastgele sayılar atayıp bastıracağız. Sadece kaç adet sayı olacağını kullanıcıdan isteyeceğiz.
dinamiknew.cpp
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int i, num;
int *data;
time_t t;
printf("Kac adet sayi olusturulsun: ");
scanf("%d", &num);
data = new int[num];
if(data == NULL)
{
printf("Hata!! Bellek yetersiz \n");
exit(0);
}
srand((unsigned) time(&t));
for(i = 0; i < num; ++i)
{
*(data + i) = rand() % 100;
}
for(i = 0; i < num; ++i)
{
printf("%d. sayi = %d\n", i, *(data+i));
}
delete [] data;
return 0;
}
Burada malloc yerine new kullandık. Yine aynı şekilde bellek yaratmada sorun olmaması açısından null kontrolü yapıyoruz ki program da beklenmedik sonlanmalar görmeyelim. En son ise new ile yarattığımız alanı delete ile siliyoruz. Bu şekilde memory leak problemi yaşamıyoruz.
Bu örneğin cpp ile yazıldığına dikkat edelim. dosya uzantısı .cpp ve derleyicisi g++ olacaktır buna göre.
Yorumlar
Yorum Gönder