Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
MQL5'teki yıkıcılar her zaman sanaldır. Her şey doğru şekilde silindi, Print'i (__ FUNCSIG __) indirmeyi deneyin; yıkıcılarda.
VC++'da yaptım, ancak bellek serbest bırakma mekanizmalarının aynı olduğunu düşünüyorum?
Ancak örneğiniz doğru çalışacaktır, çünkü. yalnızca temel sınıfın sanal yıkıcısını belirtebilirsiniz.
Fikri biraz farklı ifade etmeye çalışacağım:
Verilen:
Hareketler:
Not: resim bellek modelini gösterir)
Şüpheler, çünkü bir numaralı sınıfa işaretçi, ama aslında iki numaralı bellek sınıfında. Gerçekten de, yıkıcıların olduğu durumlarda, bu önemli, bu yüzden düşündüm ve aniden burada bir sorun olabilir. Böyle bir durumda, belleğin doğru serbest bırakılmasının ancak bellekte bazı işaretler (boş sonlandırıcılı char gibi) veya buna benzer bir şey varsa gerçekleşebileceğini düşünüyorum, bu yüzden belleğin nasıl tahsis edildiğini sordum.
Şüpheniz, kurucuları kaydetmemiş olmanızdan kaynaklanmaktadır (bu durumda ne olduğunu anlamak için bu önemlidir), bu örneği çalıştırmayı deneyin ve her şeyi anlayacaksınız:
Tehdit oluşturmanın kendisi, silme gibi, adım adım gerçekleşir ve tüm bu bilgiler saklanır (sanal işaretçinin kendisi, sınıfın tabandan ve alt öğeden bir bileşik olarak oluşturulduğunu unutmayın) ve silme sırasında yıkıcılar tersine çağrılır. sipariş, daha sonradan önceye.
Yıkıcılarla ilgili değil, ana şey değiller, sınıfın kendisiyle veya daha doğrusu kaç bayt aldığıyla ilgili. 200 bayt ayırdığımız ortaya çıktı ve sonra 100 baytlık bir nesneyi temsil eden işaretçi tarafından işaret edilen belleği boşaltmamı söylüyoruz.
Evet, hafıza havuzu, silme çağrısı ile parçanın ne kadar süreyle serbest bırakılacağını bilir.
Bu bilgilerin depolandığı yer, havuzun uygulanmasına bağlıdır.
Örneğin, C++'da new aracılığıyla tahsis edilmemiş bir nesneye işaretçi verirseniz, uygulamanızın nasıl çökeceğini göreceksiniz.
Yıkıcılarla ilgili değil, ana şey değiller, sınıfın kendisiyle veya daha doğrusu kaç bayt aldığıyla ilgili. 200 bayt ayırdığımız ortaya çıktı ve sonra 100 baytlık bir nesneyi temsil eden işaretçi tarafından işaret edilen belleği boşaltmamı söylüyoruz.
Anladığım kadarıyla sorunuz hafıza havuzunun özellikleri ile ilgili.
Evet, hafıza havuzu, silme çağrısı ile parçanın ne kadar süreyle serbest bırakılacağını bilir.
Bu bilgilerin depolandığı yer, havuzun uygulanmasına bağlıdır.
Örneğin, C++'da new aracılığıyla tahsis edilmemiş bir nesneye işaretçi verirseniz, uygulamanızın nasıl çökeceğini göreceksiniz.