ZeroMemory von String Array mit Länge Null führt in RELEASE zu Zugriffsverletzung - Bug?

 

Hallo,

in der neuesten Version von MT5 (1931) führt folgender Code:

   string agstr[];

   ZeroMemory(agstr);

seit Neuestem NUR im RELEASE zur Zugriffsverletzung (mit der Ausgabe von Assemblercode?) - in der Debugversion nicht.

Das soll vermutlich so nicht sein - Bitte um Behebung. Vielen Dank.

 

??

Habe gerade in einem Indikator getestet:

int OnInit()  {
   string agstr[] = {"1","1","1","1","1","1","1","1","1"};
   Print(agstr[4]);
   ZeroMemory(agstr);
   Print(agstr[4]);
   return(INIT_FAILED);
}

Keine Fehler durch Compiler, Indi-Start, Debuger.. ?

 
Markus Voltin:

Hallo,

in der neuesten Version von MT5 (1931) führt folgender Code:

   string agstr[];

   ZeroMemory(agstr);

seit Neuestem NUR im RELEASE zur Zugriffsverletzung (mit der Ausgabe von Assemblercode?) - in der Debugversion nicht.

Das soll vermutlich so nicht sein - Bitte um Behebung. Vielen Dank.

Ja das stimmt. im finalen Compilat fliegt der EA raus.

ABER: Ist es nicht unnötig ein leeres Array mit Nullen zu füllen? Was willst denn da füllen?

Aber es stimmt auch, daß das repariert gehört. Ist ein schwer aufzuspürender Fehler!

 

In der 1930 auch.

@Carl du hast nicht den gleichen Code benutzt.

Entscheident ist ein uninitialisiertes Array noch mal zu löschen.

 

Hat jemand von Euch eine Meldung im russischen  Forum gemacht?

Sonst mach ich es.

 
Carl Schreiber:

Hat jemand von Euch eine Meldung im russischen  Forum gemacht?

Sonst mach ich es.

Konnte nichts finden , denn mal los Carl.... :-)

 

Manchmal frage ich mich ob die MQ Devs keine Unit-Tests einsetzen.

Sowas muss denen doch gleich auffallen.

Grund der Beschwerde: