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.
               "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.                                                                     

               Ö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

    Bu blogdaki popüler yayınlar

    LINKER (BAĞLAYICI) NEDİR?

    GUI (GRAFİKSEL KULLANICI ARAYÜZÜ) NEDİR?

    PROCESS VE THREAD ARASINDA FARK NEDİR?