SORU
27 EKİM 2008, PAZARTESİ


Yeni/arasındaki fark/ücretsiz sil malloc nedir?

*/delete *1 ve malloc/freearasındaki fark nedir?

(Yinelenen?) ile ilgili: In what cases do I use malloc vs new?

CEVAP
27 EKİM 2008, PAZARTESİ


yeni/sil

  • /Serbest bellek ayrılamadı
    1. Bellekten ayrılan Serbest Store'
    2. Döner tam olarak yazılı bir işaretçi.
    3. (standart sürüm) yeni hiç döndürür NULL (başarısızlık üzerine atar)
    4. Tip-ID (derleyici boyutunu hesaplar) denir
    5. Bir sürüm açıkça diziler işlemek için vardır.
    6. Yeniden (daha fazla yer almak için) sezgisel olarak ele değil (kopya kurucu dolayı).
    7. Malloc getirdikleri/ücretsiz uygulama tanımlı.
    8. Yeni bir bellek ayırıcısı düşük bellek ile başa çıkmak için Ekle (set_new_handler)
    9. operatör yeni/sil yasal olarak geçersiz kılınabilir
    10. kurucu//nesneyi başlatmak yok etmek için kullanılan yıkıcı

malloc/ücretsiz

  • Ayırır/serbest bellek
    1. Bellekten ayrılan '' . Öbek
    2. Bir void* döndürür
    3. Hatası NULL döndürüyor
    4. Belirtmek boyutunu bayt cinsinden gerekli.
    5. Ayrılırken dizi uzay manuel hesaplama gerektirir.
    6. Hafıza basit büyük kısmını (endişelenecek Hiçbir kopya kurucu) yeniden tahsis etme
    7. Onlar olacakDEĞİLyeni/sil arayın
    8. Düşük bellek ile yardımcı olmak için tahsis sıra kullanıcı kodu ekleme yolu yok.
    9. serbest/mallocDEĞİLyasal olarak geçersiz kılınabilir

Tablo özellikleri yönünden karşılaştırılması

 Feature                  | new/delete                     | malloc/free                   
-------------------------- -------------------------------- -------------------------------
 Memory allocated from    | 'Free Store'                   | 'Heap'                        
 Returns                  | Fully typed pointer            | void*                         
 On failure               | Throws (never returns NULL)    | Returns NULL                  
 Required size            | Calculated by compiler         | Must be specified in bytes    
 Handling arrays          | Has an explicit version        | Requires manual calculations  
 Reallocating             | Not handled intuitively        | Simple (no copy constructor)  
 Call of reverse          | Implementation defined         | No                            
 Low memory cases         | Can add a new memory allocator | Not handled by user code      
 Overridable              | Yes                            | No                            
 Use of (con-)/destructor | Yes                            | No                            

Teknik olarak yeni bir bellek tarafından tahsis edilen gelir Serbest belleğe malloc ile ayrılmış ise'''. Öbek Bu iki alanda olup aynı uygulamasıdır malloc ve yeni karışık olamaz, bu yüzden detayları.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • 3DS Max Tutorials

    3DS Max Tuto

    4 AĞUSTOS 2013
  • DRDAnimation

    DRDAnimation

    28 EYLÜL 2012
  • The Platform

    The Platform

    14 HAZİRAN 2006