Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
DE ACUERDO. No lo entiendo. ¿Lo entiendes? ¿Seguro que lo entiendes? ¿Exactamente?
El argumento se reduce a la siguiente afirmación:
...
No se trataba de una discusión general, sino de una situación relativa a un solo puesto, y expliqué cuál era el problema. Bien, no hubo ninguna catástrofe.
Matriz declarada doble x[268435448];
La misma matriz en la función OnStart().
También se hizo una llamada recursiva con profundidad LONG_MAX.
No hay problemas.
¿No utilizas matrices estáticas?
grande. si el tamaño de la matriz es pequeño, constante y conocido de antemano, la estática es mejor y probablemente más rápida.
grande. si el tamaño de la matriz es pequeño, constante y conocido de antemano, la estática es mejor y probablemente más rápida.
Me gustaría tener una forma de obtener una lista de variables/arreglos estáticos y sus tamaños. Probablemente se necesite un analizador de código como el que se hace aquí.
Supongo que un array estático de cadenas y un array doble son cosas muy diferentes.
Supongo que las matrices estáticas de cadenas y las matrices dobles son cosas muy diferentes.
string es esencialmente una clase interna que consiste en un puntero y un tamaño int, es decir, para la matriz doble ocupará condicionalmente 1,5 veces menos espacio
No creo que tenga mucho sentido molestarse en ello, a no ser que tengas arrays estáticos con millones de elementos.
¿No utilizar matrices estáticas?
Así que hay esencialmente cuatro tipos de datos en MQL:
Si dejamos la pila para las funciones y sus variables locales, nos quedan tres tipos con los que trabajar. Personalmente creo (y es sólo mi opinión) que los datos definidos con vida automática combinan bien las ventajas de los dos tipos anteriores, sin sus desventajas. Los datos definidos con puntero automático son tan predecibles y seguros como los estáticos, pero tan flexibles como los dinámicos, controlados manualmente. Por previsibilidad me refiero a escenarios en los que no es necesario hacer comprobaciones adicionales de bits de puntero y preguntarse si alguien ya ha borrado los datos antes. Por flexibilidad me refiero a escenarios en los que se puede trabajar con datos referenciados por un autopuntero como con un puntero normal, pasando el puntero a una función o, para los arrays, reciclándolo.
Para ilustrar lo que acabo de decir, puedes comparar el código inicial proporcionado por Ihor Herasko y el mismo código que he escrito para POINTER_AUTOMATIC. No hay comprobaciones ni inicializaciones adicionales, ni el operador borra 60 000 000 veces. Todo esto le ahorra tiempo, esfuerzo y, lo que también es importante, recursos. Si lo entiendes, casi nunca necesitarás trabajar con punteros. Siempre se puede escribir un algoritmo de este tipo que minimice este trabajo o que no lo haga. Por ejemplo, nunca manejo objetos manualmente en mi código - simplemente no hay necesidad de hacerlo. En cuanto a las matrices estáticas, entonces a veces tengo que utilizar, por ejemplo, para coser en el programa de los datos que necesita, pero son cosas tan especiales, que los usuarios comunes, supongo, no los necesitan. Lo mejor es utilizar colecciones ya hechas como CArrayObj, o las propias. Ahora las plantillas y las capacidades MQL permiten crear cosas bastante flexibles que son mucho mejores que las matrices estáticas.
Vasiliy Sokolov #:
Datos estáticos y predefinidos. Se incorpora al programa en tiempo de compilación y ya no se modifica. Se almacenan en una zona de memoria privada. Por ejemplo, son matrices estáticas como char[1024].
Si el array no está inicializado,
¿por qué debería estar escrito en EX5?
Si el array no está inicializado,
¿por qué habría que coserlo en la EX5?
Sí, es cierto, los no inicializados no se cosen, por supuesto. Los inicializados sí. Pero los tamaños de ambos tipos se definen en el momento de la compilación y ya no cambian. Es decir, las matrices estáticas pueden dividirse condicionalmente en dos grupos.
En emcool no hay ningún recolector de basura.
Oficialmente, sí. Extraoficialmente, muchas cosas indican que existe: