new []
tarafından oluşturulan bir işaretçi üzerine delete []
yazdığımızda, program dizideki muhasebe bilgilerini arayacak ve dizinin öğe boyutunu (bir sayaç) bulacaktır. Daha sonra program, her birinin öğesinin yıkıcısını çağırır. Son olarak, bellek (ne bellek?) operator delete
adlı bir işlev tarafından ayrılır.[] İmha makinelerini çağırdıktan sonra [] bir bellekte belleği ayırır mı?
Ne Soruyorum delete[]
onu bu bilgilerin (toplam bellek miktarı) sonra tüm unsurları yok edilir kullanılabilir olduğundan tek atışla yılında, new[]
ifadeye göre ayrılan tüm bellek ayırması ya olacak mı olacağı ardışık olarak, çalıştırdığı yıkıcıları çalıştırdığı dizi elemanları tarafından saklanan belleği ayırır?
ilgili bir izlem quesion Does delete (non array form) know the total amount of memory allocated by either new or new[]
Ben senin sorunun cevabı özgürdürler 'malloc' tarafından döndürülen tahsisi boyutunu bilmek gerekir' mu –
derleyici ve işletim sistemi tarafından yerine getirilmesine bağlı olduğu düşünebilirdi? –
C++ standardı, "delete" ifadelerinin varsayılan davranışı hakkında bir şey söylüyor mu? – Rich