mql4'te yığın taşması hatasına neden olan nedir? - sayfa 3

 
RaptorUK :
Ancak bu kadar büyük bir işlevi işleyebilir. . . açıkladığım gibi, fonksiyon türünü değiştirin ve aynı boyutta function için derleme hatası yok. .


Bu, bir int işlevinin yürütülmesi için daha fazla kaynak gerektirdiği anlamına mı geliyor? Belki o zaman metaalıntılar init, deinit yapabilir ve daha küçük kaynakları tüketmeleri için geçersiz olmaya başlayabilir.
 
RaptorUK :
Ancak bu kadar büyük bir işlevi işleyebilir. . . açıkladığım gibi, fonksiyon türünü değiştirin ve aynı boyutta function için derleme hatası yok. .

. . . veya int olarak bırakın ve dönüşte bırakın (0); ve bunu tüm aramalar için yapın. . .

   ReturnedValue = ObCreate( "EURUSDg" ,Column1xg, 15 ,ZoomTimes);
   ReturnedValue = ObCreate( "EURUSDa" ,Column1xa, 15 ,ZoomTimes);

. . . burada ReturnedValue bir int . . . bil bakalım ne oldu ? derleme hatası yok.


Kodun mantıklı olmasını sağlayın. . . ve hey presto, sanki sihirle hata ortadan kalkıyormuş gibi, garip ha?

 
0 döndüren bir int işlevi , bir void işleviyle karşılaştırılabilir olmalıdır, bu nedenle bu, bir şey olduğu anlamına gelir.
 
tonny :

Bu, bir int işlevinin yürütülmesi için daha fazla kaynak gerektirdiği anlamına mı geliyor? Belki o zaman metaalıntılar init, deinit yapabilir ve daha küçük kaynakları tüketmeleri için geçersiz olmaya başlayabilir.
Elbette bir int işlevi yürütmek için daha fazla kaynağa ihtiyaç duyar. . . bir değer döndürmek gerekir ve bu değerin döndürülebilmesi için bellekte saklanması gerekir. init , start ve deinit ile void olarak bildirilen insanların kodunu gördüm. . . bu benim yaptığım bir şey değil.
 
RaptorUK :

. . . veya int olarak bırakın ve dönüşte bırakın (0); ve bunu tüm aramalar için yapın. . .

. . . burada ReturnedValue bir int . . . bil bakalım ne oldu ? derleme hatası yok.


Kodun mantıklı olmasını sağlayın. . . ve hey presto, sanki sihirle hata ortadan kalkıyormuş gibi, garip ha?


int işlevi de 0 döndürüyor. Neyse sorun çözüldü ama hataya gelince, olmaması gereken yerde göründüğünü düşünüyorum.
 
tonny :
0 döndüren bir int işlevi, bir void işleviyle karşılaştırılabilir olmalıdır, bu nedenle bu, bir şey olduğu anlamına gelir.
Hayır değil. . . void işlevi bir değer döndürmez. . . 0, 1, 10000 değerlerin tümü kaydetmek için aynı bellek alanını kaplar. . . hepsi int türündedir ve bir int 4 bayt kullanır. void 0 bayt alan hiçbir şey döndürmez. . .
 
Bu, boşlukta bile daha fazla nesne ekleseydik, stres noktasına ulaşacağı ve tekrar hataya neden olacağı anlamına gelir. Anlaştık mı?
 
Sessizliği evet olarak kabul ediyorum. Dava kapandı.
 
tonny :
Bu, boşlukta bile daha fazla nesne ekleseydik, stres noktasına ulaşacağı ve tekrar hataya neden olacağı anlamına gelir. Anlaştık mı?
Hayır, katılmıyorum.

Ama görünüşe göre haklı olabilirsin. . .
 
RaptorUK :
Hayır, katılmıyorum.

Ama görünüşe göre haklı olabilirsin . . .

Şimdi aynı sayfadayız.