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
OK. Je ne comprends pas. Vous comprenez ? Vous êtes sûr de comprendre ? Exactement ?
L'argument se résume à l'affirmation suivante :
...
Il ne s'agissait pas d'un argument général, mais d'une situation concernant un seul message, et j'ai expliqué quel était le problème. Ok, il n'y a pas eu de catastrophe.
Tableau déclaré double x [268435448];
Le même tableau dans la fonction OnStart().
J'ai aussi fait un appel récursif avec une profondeur LONG_MAX.
Aucun problème.
Vous n'utilisez pas de tableaux statiques ?
grande. Si la taille du tableau est petite, constante et connue à l'avance, la statique est meilleure et probablement plus rapide.
grande. Si la taille du tableau est petite, constante et connue à l'avance, la statique est meilleure et probablement plus rapide.
J'aimerais avoir un moyen d'obtenir une liste des variables/rays statiques et de leurs tailles. Vous aurez probablement besoin d'un analyseur de code comme ici.
Je suppose que les tableaux de chaînes statiques et les tableaux de doubles sont des choses bien différentes.
Je suppose que les tableaux statiques de chaînes et les tableaux doubles sont des choses bien différentes.
la chaîne de caractères est essentiellement une classe interne constituée d'un pointeur et d'une taille int, c'est-à-dire que pour un tableau double, elle occupera conditionnellement 1,5 fois moins d'espace
Je ne pense pas qu'il y ait beaucoup de sens à s'en préoccuper, sauf si vous avez des tableaux statiques avec des millions d'éléments.
Ne pas utiliser de tableaux statiques ?
Il existe donc essentiellement quatre types de données dans MQL :
Si nous laissons la pile aux fonctions et à leurs variables locales, il nous reste trois types avec lesquels travailler. Je crois personnellement (et ce n'est que mon opinion) que les données définies avec une durée de vie automatique combinent bien les avantages des deux types précédents, sans leurs inconvénients. Les données définies à l'aide d'un pointeur automatique sont aussi prévisibles et sûres que les données statiques, mais tout aussi flexibles que les données dynamiques, contrôlées manuellement. Par prévisibilité, j'entends les scénarios dans lesquels il n'est pas nécessaire de procéder à des vérifications supplémentaires des bits de pointeur et de se demander si quelqu'un d'autre a déjà supprimé les données auparavant. Par flexibilité, j'entends des scénarios dans lesquels on peut travailler avec des données référencées par un auto-pointeur comme avec un pointeur normal, en passant le pointeur à une fonction ou, pour les tableaux, en le recyclant.
Pour illustrer ce que je viens de dire, vous pouvez comparer le code initial fourni par Ihor Herasko et le même code que j'ai écrit pour POINTER_AUTOMATIC. Il n'y a pas de contrôles et d'initialisations supplémentaires, pas de suppression d'opérateur 60 000 000 de fois. Tout cela vous permet d'économiser du temps, des efforts et, ce qui est également important, des ressources. Si vous le comprenez, vous n'aurez presque jamais besoin de travailler avec des pointeurs. Vous pouvez toujours écrire un tel algorithme qui minimiserait ce travail ou ne le ferait pas du tout. Par exemple, je ne manipule jamais les objets manuellement dans mon code - ce n'est tout simplement pas nécessaire. Quant aux tableaux statiques, je dois parfois les utiliser, par exemple, pour coudre dans le programme les données dont il a besoin, mais il s'agit de choses si spéciales, que les utilisateurs ordinaires, je suppose, n'en ont pas besoin. Il est préférable d'utiliser des collections prêtes à l'emploi telles que CArrayObj, ou vos propres collections. Aujourd'hui, les modèles et les capacités MQL vous permettent de créer des choses assez flexibles qui sont bien meilleures que les tableaux statiques.
Vasiliy Sokolov #:
Données statiques et prédéfinies. Intégrée dans le programme au moment de la compilation, elle n'est plus modifiée. Ils sont stockés dans une zone de mémoire privée. Par exemple, ce sont des tableaux statiques du type char[1024].
Si le tableau n'est pas initialisé,
pourquoi devrait-elle être inscrite dans EX5 ?
Si le tableau n'est pas initialisé,
pourquoi devrait-il être intégré dans EX5 ?
Oui, c'est vrai, ceux qui ne sont pas initialisés ne sont pas cousus, bien sûr. Ceux qui sont initialisés le sont. Mais les tailles des deux types sont définies au moment de la compilation et ne changent plus. En d'autres termes, les tableaux statiques peuvent être divisés conditionnellement en deux groupes.
Il n'y a pas de collecteur d'ordures dans emcool.
Officiellement, oui. Officieusement, beaucoup de choses indiquent qu'elle existe :