Hatalar, hatalar, sorular - sayfa 593

 

Eski gelişmelerimden birine bakmaya karar verdim ve... Söylesene, bu hata ne anlama geliyor?

---

Uzman başlatma başarılı. Ve bilgi panelini açmaya çalıştığınızda bir sürprizle karşılaşıyoruz. Nedeni nerede aranmalı? ))

 
tol64 :

Eski gelişmelerimden birine bakmaya karar verdim ve... Söyle bana, bu hata ne anlama geliyor?

---

Uzman başlatma başarılı. Ve bilgi panelini açmaya çalıştığınızda bir sürprizle karşılaşıyoruz. Nedeni nerede aranmalı? ))

Sorunu yerelleştirmemiz gerekiyor. Print'i benzer bir durumda kurdum ve tam olarak nerede çöktüğüne baktım. Ve sonra ya servis masasına ya da foruma. Ya da belki bir hata bulacaksınız.
 
Valmars :
Sorunu yerelleştirmemiz gerekiyor. Print'i benzer bir durumda kurdum ve tam olarak nerede çöktüğüne baktım. Ve sonra ya servis masasına ya da foruma. Ya da belki bir hata bulacaksınız.

Basmadığım yeri basmak zorunda kalacağım. )) Ve geliştiriciler bu resim kodundan bacakların nereden büyüdüğünü belirleyemiyor mu? Bir ipucu lazım. Her zaman oluşturulan yeni kod olmasına rağmen. İşte başka bir örnek:

 
tol64 :

Basmadığım yeri basmak zorunda kalacağım. )) Ve geliştiriciler bu resim kodundan bacakların nereden büyüdüğünü belirleyemiyor mu? Bir ipucu lazım. Her zaman oluşturulan yeni kod olmasına rağmen. İşte başka bir örnek:

Her durumda, geliştiricilerden her şeyi yerelleştirmeleri, SD'de bir uygulama oluşturmaları, bir uzman eklemeleri ve her şeyi mümkün olduğunca ayrıntılı bir şekilde açıklamaları istenecektir.

Bu yüzden onlar geliştiricidirler (bunları bilirsiniz) ve telepatlar bugün dinleniyor. :)

 
Some_ array_1, bellek ayrılmamış, some_ array_1[] olarak bildirilen dinamik diziye kopyalandıktan sonra, some_ array_2 dinamik dizisi, bazı_ array_2[] olarak bildirildi ve ArrayResize(some_ array_2, some_ array_2_quantity) kullanılarak bellek ayrıldı. ArrayCopy operatörü (some_ array_1, some_ array_2), some_ array_1 dizisinin eleman sayısının 0 değil, bazı_array_2_quantity olduğu ortaya çıkıyor. Bu ciddi bir hatadır, çünkü some_ array_1[] bellek ayrılmadı. Lütfen bu durumda dizinin boyutunun kendi kendine değişmemesi ve derleyicinin hata vermesi için düzeltin.
Документация по MQL5: Основы языка / Типы данных / Объект динамического массива
Документация по MQL5: Основы языка / Типы данных / Объект динамического массива
  • www.mql5.com
Основы языка / Типы данных / Объект динамического массива - Документация по MQL5
 
Interesting :
geliştiriciler

Yeni bir yapıya (555) geçtikten sonra, terminal "Araçlar", "Piyasa İzleme", "Test Edici" ve " Veri Penceresi " için konumu (veya daha doğrusu faaliyet durumunu) kaydetmeyi durdurdu.

Terminal kapatılıp tekrar açıldıktan sonra (küçültülmemiş, yani kapatılmış), ana formun dışında kalan her şey kaybolur. Anladığım kadarıyla, terminal nedense tüccarın bu şeyler olmadan yaptığına inanıyor. menüye girip her şeyi yeniden açmanız gerekiyor (en azından konumun hatırlanması iyi).

"Gezgin", her zaman olduğu gibi, ana form penceresindeki çizelgelerle birlikte bulunur, her şey yolunda.

İşletim Sistemi - Win XP32, Build - 555, iki monitör. Birinde ana pencere (navigatörün ve çizelgelerin bulunduğu) ve ikincisinde yukarıdakilerin tümü ("Araçlar", "Piyasa İzleme", "Test Edici" ve "Veri Pencereleri").

not

x64 ve diğer işletim sistemleri hakkında bir şey söyleyemem, iki monitörde kontrol etmenin bir yolu yok.

Bir monitörde yedide aynı saçmalık. Yeniden yükleme yardımcı oldu. Ve terminal, yeniden kurulumdan sonra Dolaşımdaki klasörleri farklı terminaller için karıştırıyor.
 
-Alexey- :
Some_ array_1, bellek ayrılmamış, some_ array_1[] olarak bildirilen dinamik diziye kopyalandıktan sonra, some_ array_2 dinamik dizisi, bazı_ array_2[] olarak bildirildi ve ArrayResize(some_ array_2, some_ array_2_quantity) kullanılarak bellek ayrıldı. ArrayCopy operatörü (some_ array_1, some_ array_2), some_ array_1 dizisinin eleman sayısının 0 değil, bazı_array_2_quantity olduğu ortaya çıkıyor. Bu ciddi bir hatadır, çünkü some_ array_1[] bellek ayrılmadı. Lütfen bu durumda dizinin boyutunun kendi kendine değişmemesi ve derleyicinin hata vermesi için düzeltin.

Hata yok, ArrayCopy işlevinin kendisi, alıcının dinamik dizisinin belleğini kopyalanan verilerin boyutuna ayırır.

Bu bir hata değil, bir özelliktir.

 
Urain :

Hata yoktur, ArrayCopy işlevi alıcının dinamik dizisinin belleğini kendisi ayırır.

Bu bir hata değil, bir özelliktir.

Bu özelliğinden dolayı, algoritmik hatalar yapmak kolaydır - tesadüfen veya algoritmanın yanlışlığından. Ve sonra - bir yaban turpu ve bir yaban turpu bulacaksınız, hataların olduğunu öğreneceksiniz. Hatayı yalnızca programı C++'a çevirmeye başladığımda buldum, çünkü orada derleyici - hataları algılama asistanı. dahil Bunun bir özellikten çok bir bug olduğunu düşünüyorum. BENİM NACİZANE FİKRİME GÖRE!
 
-Alexey- :
Bu özelliğinden dolayı, algoritmik hatalar yapmak kolaydır - tesadüfen veya algoritmanın yanlışlığından. Ve sonra - bir yaban turpu ve bir yaban turpu bulacaksınız, hataların olduğunu öğreneceksiniz. Hatayı yalnızca programı C++'a çevirmeye başladığımda buldum, çünkü orada derleyici - hataları algılama asistanı. dahil Bunun bir özellikten çok bir hata olduğunu düşünüyorum. BENİM NACİZANE FİKRİME GÖRE!
ArrayCopy tek bellek ayırıcı değildir, tüm Kopyalama işlevleri hedef dizilerle ilgilenir, bu nedenle dikkatli olun ve kılavuzu okuyun.
 

Nasıl oluyor da TimeCurrent() son zaman serisi değerinden daha az?

 int OnCalculate ( const int rates_total,
                 const int prev_calculated,
                 const datetime &time[],
                 const double &open[],
                 const double &high[],
                 const double &low[],
                 const double &close[],
                 const long &tick_volume[],
                 const long &volume[],
                 const int &spread[])
  {

   Print ( "time[rates_total-1] = " ,time[rates_total- 1 ]); 
   Print ( "TimeCurrent()         = " , TimeCurrent ());  

   return (rates_total);
  }
 TimeCurrent ()         = 2011.12 . 09 18 : 47 : 29
time[rates_total- 1 ]  = 2011.12 . 09 23 : 00 : 00