Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools

Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools (http://www.expert-advisor.com/forum/index.php)
-   Programmierung MQL5 (http://www.expert-advisor.com/forum/forumdisplay.php?f=221)
-   -   Sind Arrays im mql5 verlässlich am Stück? (http://www.expert-advisor.com/forum/showthread.php?t=7057)

Ca$hDigger 01.08.21 11:40

Sind Arrays im mql5 verlässlich am Stück?
 
Hallo,

ich finde dazu keine Aussage in der Dokumentation. Die Frage:
Sind eindimensionale statische sowie dynamische Arrays in mql5 im Speicher immer vollständig am Stück?
Hintergrund der Frage ist ob man gefahrlos Zeiger/Referenz weitergeben kann über die dann zugegriffen wird, ohne dass dann der Zugriff im Leeren landet.
Es gibt ja in anderen Sprachen durchaus sequenzielle Container die im Speicher NICHT komplett vollständig am Stück sind daher die Frage.

Grüße

Indikator-Trading 01.08.21 17:35

Ich benutze Referenzen sehr intensiv, vor allem mit dynamischen Arrays. Bisher habe ich da keine Probleme feststellen können. Allerdings kann man sich da bei MQL4/5 nie sicher sein. Letztens habe ich erst noch einem Bug bei MQL5 bei der Reinitialisierung der Timerfunktion feststellen müssen.
Mql4/5 bietet ja leider auch nicht die Flexibilität von C++ und anderen Sprachen wenn es um Arrays geht. Wenn die Doku nichts hergibt, bleibt wohl nur der Eigenversuch.
Gruß Timo

Ca$hDigger 02.08.21 14:47

Ja ist bei mql leider oft dann trial and error, werd da mal Testdurchläufe machen müssen. Ich gehe jetzt erst mal davon aus, dass es sich wie ein C-Array bzw std::vector verhält (zusammenhängender Speicherbereich) und nicht wie zB ein std::deque (NICHT zusammenhängender Speicherbereich).
Man weiß eben nicht ob hinter dem MQL Array-Element-Operator dann doch nicht im Verborgenen eine Überladung einer ContainerKlasse steckt welche dann eben vielleicht wie ein deque ein paar Speichersprünge macht. Ein freier Zugriff per void zeiger oder aus DLL etc wäre dann sehr gefährlich.


Alle Zeitangaben in WEZ +2. Es ist jetzt 16:32 Uhr.

Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum