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

  • Matt Harding

    Matt Harding

    23 Mayıs 2006
  • Neil Cicierega

    Neil Ciciere

    22 Mart 2006
  • segtlim

    segtlim

    21 EKİM 2008