Caractéristiques du langage mql5, subtilités et techniques - page 217
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Comment faire maintenant (b3110) zéro une structure complexe ?
Constructeur avec mise à zéro.
Et si vous voulez faire un zéro en cours, il existe aussi une méthode supplémentaire pour le faire :
Constructeur avec mise à zéro.
Et si vous voulez le mettre à zéro tout en travaillant, il existe une méthode supplémentaire pour cela :
J'aimerais une méthode universelle, comme le permettait autrefois ZeroMemory.
Considérez que j'ai changé - maintenant je vérifie le 1er terme pour x[i].i == 0 (précédemment la condition était x[i].x == 0.0)
Résultat : faux
Et avec ZeroMemory - vrai.
Merci, c'est réparé.
Forum sur le trading, les systèmes de trading automatisés et les tests de stratégies de trading
Particularités de mql5, trucs et astuces
mktr8591, 2021.08.12 19:43
J'ai fixé une limite d'attente. Ensuite, je le modifie manuellement et par script et ORDER_TIME_SETUP change.
Exemple de ce qui change.
Journal des réglages.
ORDER_TIME_SETUP est modifié. Bug ?
J'aimerais un moyen universel, comme le permettait autrefois ZeroMemory.
Et qui va libérer le tampon en ficelle ? ZeroMemory est essentiellement un analogue de ceci.
https://docs.microsoft.com/en-us/previous-versions/windows/desktop/legacy/aa366920(v=vs.85)
Aucun destructeur ne sera appelé. En conséquence, le pointeur du tampon sera effacé dans la chaîne, tandis que le tampon lui-même sera fui. Le travail direct avec la mémoire est comme un champ de mines - si vous perdez la vigilance, c'est fini)))
Voici un exemple de fuite dans votre cas :
L'objet ne possède plus de pointeur vers le tampon, mais le tampon lui-même a "fui".
PS. Fuck it not POD types to zero through memset and ZeroMemory
PS. Eh bien, ce n'est pas une mise à zéro de type POD via memset et ZeroMemory.
Je ne l'ai pas testé, mais je pense que le tampon de la chaîne est remis à zéro.
Je n'ai pas vérifié, mais je pense que le tampon des chaînes de caractères est réinitialisé.
Pourquoi se réinitialiserait-il ?)))
C'est aussi mature qu'il se doit)))
UPD : t1, t2 avec leur sortie, afin que le compilateur ne sur-optimise pas l'ensemble)
UPD2 : ils peuvent appeler delete pour le tampon, mais je n'arrive pas à trouver comment le faire dans le cas où la chaîne est à l'intérieur de la structure.
UPD3 : bien qu'il soit écrit dans l'aide, il est appelé pour cela personnellement, donc il devrait libérer le tampon, j'espère, que par pointeur vers la mémoire libérée déjà lu des données.
Pourquoi se serait-il remis à zéro ?))
Il serait bon de voir
Print(GetAddress(a.a));
Avant et après.
Il serait bon de voir
Avant et après.
Comme il se doit. Dans le premier cas, l'adresse de la mémoire, dans le second 0
Pourquoi ferait-il une remise à zéro ?)))
Tout ici est mature, comme il se doit)))
UPD : t1, t2 avec leur sortie, afin que le compilateur ne sur-optimise pas l'ensemble)
UPD2 : ils peuvent appeler delete pour le tampon, mais je n'arrive pas à trouver comment le faire dans le cas où la chaîne est à l'intérieur de la structure.
UPD3 : bien que ce soit écrit dans l'aide, je l'ai appelé personnellement, donc il devrait libérer le tampon, j'espère que c'est par un pointeur vers la mémoire libérée déjà lu les données.
En principe, tout ce qui s'y trouve devrait être assez simple à mettre en œuvre.)