'Dinamik bellek ayırma' olarak etiketlenen sorular

Dinamik bellek tahsisi, genellikle çöp toplama veya zorunlu veya otomatik referans sayımı olmayan diller bağlamında, bir işlemi ifade eder veya değişken boyutlu bir bellek bloğu için bir işletim sistemi ister.
25
cevap

Yığın ve yığın nerede ve nerede?

Programlama dillerindeki kitaplar, bu iki şeyin ne olduğunu açıklamadan yığında değer tiplerinin yaratıldığını ve öbek üzerinde referans türlerinin yaratıldığını açıklar. Bunun için net bir açıklama okumamıştım. Bir yığının ne olduğunu biliyorum. Ama nerede ve ne oldukları (fiziksel olarak ...
17 eylül ayarla . '08, 07:18
9
cevap

Statik hafıza ayırma ve dinamik hafıza ayırma arasındaki fark

Statik bellek ayırma ve dinamik hafıza ayırma arasındaki farkın ne olduğunu bilmek isterim? Bunu herhangi bir örnekle açıklayabilir misiniz?
05 Aralık ayarla '11 15: 30'da
4
cevap

C ++ 14'te yeni ve silme işlemleri hala yararlı mı?

Make_unique ve make_shared öğelerinin yanı sıra unique_ptr ve shared_ptr öğelerinin yıkıcılar tarafından otomatik olarak silinmesi göz önüne alındığında, C ++ 14'te yeni kullanma ve silme durumları nelerdir (eski kodu desteklemenin dışında)?
10: 15’de 20: 12’de
11
cevap

C ++ 'ta etkili linkler var mı?

Bu belge std :: list'in verimli olmadığını söylüyor: std :: list, nadiren yararlı olan çok verimsiz bir sınıftır. İçine yerleştirilen her eleman için yığın tahsisi yapar, bu nedenle son derece yüksek bir sabit katsayısına sahiptir ...
16 Ağustos’u ayarla 18: 18'de
5
cevap

Bir nesne kapsam dışına çıktığında yıkıcı çağrılır mı?

Örneğin: int main () {Foo * leedle = new Foo (); 0 döndür; } sınıf Foo {özel: somePointer * bar; halk: Foo (); Foo (); }; Foo :: ~ Foo () {silme çubuğu; } Yıkıcıya dolaylı olarak derleyici tarafından çağrılacak mı yoksa ...
17 Temmuz’da saat 17: 45’de
4
cevap

Bir işaretçi yükseltirken ve silerken programım neden çöküyor?

İşaretçilerle ilgili büyük bir yanlış anlama olduğumu fark ettiğimde bazı programlama alıştırmalarını çözdüm. Lütfen birileri bu kodun neden C ++ 'da kilitlendiğini açıklayabilir. #include <iostream> int main () {...
16 Aralık'ta ayarlandı '16, 15:08
5
cevap

Malloc'u ne zaman ve neden kullanıyorsunuz?

Malloc ile ne zaman ve neden hafıza tahsis edeceğimi bilemiyorum. İşte kodum: #include <stdlib.h> int main (int argc, const char * argv []) {typedef struct {char * name; char * seks; int yaş; } öğrenci; // Şimdi ben c ...
10 Ocak'ta ayarlandı '12 11:40
2
cevap

yığında bellek ayırmak için yeni operatör

Yeni operatörün imzasını izledim. Şöyle ki: void * operatörü yeni (std :: size_t size) throw (std :: bad_alloc); Fakat bu ifadeyi kullandığımızda, asla alçı kullanmayız. yani, int * arr = yeni int; Peki, C ++ işaretçiyi nasıl dönüştürür ...
09 Şubat ayarla '11 9: 02'de
6
cevap

Dinamik bellek ayırma kullanmadan Pimpl deyim

pimpl deyimini projemizin bazı kısımları için kullanmak istiyoruz. Projenin bu kısımları aynı zamanda dinamik bellek tahsisinin yasak olduğu ve bu çözümün kontrolümüz altında olmadığı kısımlardır. Ben de temiz olup olmadığını sordum ve ...
07 Şubat ayarla '11 16: 38'de
4
cevap

Çalışma zamanı ortamı neden programcı yerine delete veya delete [] uygulayamıyor?

Delete [] operatörünün gerekli olduğunu okudum, çünkü çalışma zamanı, seçili bir bloğun yıkıcı çağrıları gerektiren bir nesne dizisi olup olmadığı hakkında bilgi saklamadığından değil, aslında hafızanın nerede olduğu hakkında bilgi sakladığından ...
06 Dec ayarla '11 21: 46'da
3
cevap

Neden _mm_malloc kullanılır? (_aligned_malloc, alligned_alloc veya posix_memalign'den farklı olarak)

Yerleşik bir bellek bloğunu elde etmek için çeşitli seçenekler vardır, ancak bunlar çok benzerdir ve sorun temel olarak standart ve platformda hangi dili hedeflediğinizle ilgilidir. C11 geçersiz * align_alloc (size_t hizası, size_t boyutu) PO ​​...
16 Eylül’ü ayarla '15 18: 30'da
4
cevap

Linux altında derlemeler ve sistem çağrıları kullanarak dinamik olarak bellek nasıl tahsis edilir

Linux altında assembly dili kullanarak ve malloc ve arkadaş yerine sistem çağrılarını kullanarak dinamik bellek tahsis etmek için iyi kod örnekleri arıyorum. Bunu yapmanın en basit ama etkili yollarından bazıları nelerdir? Bilgisayarda ...
06 Mayıs’ta saat 17: 54’de
5
cevap

Operatöre yeni karıştırma [] ve normal silme [] 'ye yeni bir tane yerleştirme

Sadece merak dışında, yasal mı? X * p = statik_cast <X *> (operatör yeni [] (3 * sizeof (X))); yeni (p + 0) X (); yeni (p + 1) x (); yeni (p + 2) x (); sil [] p; // burada delete [] kullanmama izin verilir mi? Yoksa tanımsız davranış mı? Benzer şekilde: ...
27 Haziran’da 19:02
4
cevap

İşaretçi dizileri için dinamik bellek ayırma

Bir metin dosyasından satır dizisinde okuyan ve bunları her dizine dinamik olarak ayıran bir dizi dizide depolayan bir program yazmaya çalışıyorum. Planım her satırı bir kararnamenin yardımıyla bir dizide saklamaktı ...
28 Eylül’ü ayarla '13 18: 40'da
3
cevap

Yeni işleyicinin davranışını anlayın

Scott Meyers'ın "Effective C ++ 55" adlı kitabını okudum ve madde 49'dan gelen soruyu soruyorum: Yeni bir operatör bir bellek isteğini tamamlayamadığında, yeterli bellek bulana kadar yeni bir işleyici çağırır. İyi tasarlanmış bir newhandler işlevi bir tane yapmalı ...
16 Şubat ayarla 15: 15'te