NEW VE DELETE OPERATÖRLERİ
NESNE İŞARETÇİLERİ
New Komutu
İşletim sisteminden uygun miktarda bellek alanı alır. Döndürdüğü
değer bu alanın başlangıç adresidir. Eğer işlem başarısız olursa 0 (NULL) döndürür.
Nesne işaretçilerinde new kullanıldığında yukarıdakine ek olarak nesnenin kurucu fonksiyonu çalıştırılır. Böyle nesne yaratılırken başlangıç değerleri atanmış olur.
Nesne işaretçilerinde new kullanıldığında yukarıdakine ek olarak nesnenin kurucu fonksiyonu çalıştırılır. Böyle nesne yaratılırken başlangıç değerleri atanmış olur.
"new operator" için derleyici arka planda kod üretir.Örnek vermek gerekirse ;
int *a = new int(16);
lib_func(a);
delete a;
bu örnekte new komutu ile delete komut gördük.Birazdan bu komutu açıklayıcam.
Delete Komutu
Belleğin verimli ve etkin kullanımı için, new operatörünün
kullanımına karşılık olarak bellek alanı kullanımı bittiğinde işletim
sistemine delete operatörü ile geri verilmelidir.
new ile aşağıdaki biçimde bir nesne dizisi için bellek alındığında
int * ptr = new int[10];
delete ile
delete [ ] ptr;
şeklinde işletim siteminde geri verilmelidir.
İşaretçi önündeki “[]” kullanılmaz ise sadece dizinin ilk elemanı için bellek alanı geri verilir.
new ile aşağıdaki biçimde bir nesne dizisi için bellek alındığında
int * ptr = new int[10];
delete ile
delete [ ] ptr;
şeklinde işletim siteminde geri verilmelidir.
İşaretçi önündeki “[]” kullanılmaz ise sadece dizinin ilk elemanı için bellek alanı geri verilir.
Örneğin;
char * ch = new char;
delete ch; //Ok
char * ch = new char;
delete [] ch; //Error
char * ch = new char[1];
delete ch; //Error!
char * ch = new char[1];
delete [] ch; //Ok
Yorumlar
Yorum Gönder