Errores, fallos, preguntas - página 2569

 
Roman:

Sí, y contiene basura.

La pregunta era muy diferente. Para inicializar con un valor vacío, no cero. Si es que tal cosa es posible.
¡El cero es un número! Un valor vacío a mi entender, sin números, sin nada.
Pero las celdas de memoria se inicializan con este vacío ))

¿Cómo te lo imaginas?

Una ubicación de memoria siempre contiene algo. Un solo byte puede contener un número entre 0 y 255.

No se proporciona un valor vacío.

 
Roman:

Sí, y contiene basura.

La pregunta era muy diferente. Inicializar con un valor vacío, no cero. Si es que eso es posible.
¡El cero es un número! Un valor vacío a mi entender, sin números, sin nada.
Pero las celdas de memoria se inicializan con este vacío ))


Todo es posible, pero la tarea no está clara. O bien asignar desde códigos de rangos de caracteres con estado especial si es posible(CHAR_MAX- vacío, CHAR_MAX-1 - error, etc.), o bien almacenar en paralelo a la matriz de caracteres banderas que describen el estado de la matriz de caracteres (un byte - banderas "vacío" para ocho celdas). Pero esto probablemente no es necesario en absoluto, extraño querer.

ZS: probablemente la influencia de los lenguajes donde todas las matrices son asociativas
 
Roman:

Sí, y contiene basura.

La pregunta era muy diferente. Inicializar con un valor vacío, no cero. Si es que eso es posible.
¡El cero es un número! Un valor vacío a mi entender, sin números, sin nada.
Pero las celdas de memoria se inicializan con este vacío ))

No funciona así))) Un byte es una unidad de información. Si está ahí, entonces hay un valor.
 
Maksim Emeliashin:

MT5 Build 2145 con fecha 17 de septiembre de 2019.

Cuando el probador se inicia, desactiva automáticamente el grupo de agentes de la red local. Si se enciende a la fuerza, la próxima vez que se ponga en marcha el comprobador lo volverá a apagar a la fuerza.

Estoy harto del problema que se arrastra durante medio año cuando, de repente, la mitad de los agentes dejan de aceptar el trabajo y hay que forzarlos a salir y volver a entrar,

y ahora tengo que encender los agentes locales cada vez que se inicia el probador.

¿Qué aparece en el cuaderno de bitácora del probador al hacer esto?

 
Slava:

¿Qué aparece en el cuaderno de bitácora del probador al hacer esto?

Ya lo tengo, había una versión de depuración del EA, al parecer no se puede usar para el tester en los agentes locales, sino sólo en los de tu ordenador, aunque no está claro por qué.
 
Roman:

Sí, y contiene basura.

La pregunta era muy diferente. Para inicializar con un valor vacío, no cero. Si es que eso es posible.
¡El cero es un número! Un valor vacío a mi entender, sin números, sin nada.
Pero las celdas de memoria se inicializan con este vacío ))

por ejemplo, inicializar diferentes tipos con "vacío"

   uchar  c=EMPTY_VALUE;
   uint   i=EMPTY_VALUE;
   ulong  l=EMPTY_VALUE;
   short  s=EMPTY_VALUE;
   float  f=EMPTY_VALUE;
   double d=EMPTY_VALUE;
   string str=EMPTY_VALUE;
   uchar uc[];
   StringToCharArray(str,uc);

que tenemos en forma HEX al depurar:


Con las cuerdas, es una cosa curiosa.


pero si la cadena se inicializa así

string str="";

entonces el resultado:


Bueno, si no inicializa(cadena str;) en absoluto, así como inicializa =NULL, entonces lo que necesita es un verdadero void:


 
Nikolai Semko:

por ejemplo, inicializar diferentes tipos con "vacío"

que tenemos en forma HEX al depurar:


Con las cuerdas, es una cosa curiosa.


pero si la cadena se inicializa así

entonces el resultado:


Bueno, si no inicializa(cadena str;) en absoluto, así como inicializar =NULL, entonces lo que necesita es un verdadero vacío:


¿Dónde has visto un vacío? Se llama sobrecarga de la matriz. En C/C++ comportamiento indefinido y aquí error en tiempo de ejecución.
Todos los demás tipos se lanzan implícitamente desde double, así que eso también está bien.
 
Vladimir Simakov:
¿Dónde ves el vacío? Se llama sobrecarga de la matriz. En C/C++ comportamiento indefinido, y aquí es error en tiempo de ejecución.
Todos los demás tipos se lanzan implícitamente desde double, por lo que todo es correcto allí también.

La cadena está vacía (no la matriz uchar), como si no existiera, es decir, ni siquiera se asigna memoria.

Esto se observa en otros tipos. Si se declara una variable, significa que la memoria ya está asignada.
Pero en realidad, la cadena no es un tipo primitivo, sino un tipo de referencia, al igual que cualquier matriz.

 

no puedo averiguar cómo comprobarPrintFormat

Nota

PrintFormat() no se ejecuta en el probador de estrategias en modo de optimización.

¿Alguna idea?

 
Igor Makanu:

no puedo averiguar cómo comprobarPrintFormat

Nota

PrintFormat() no se ejecuta en el probador de estrategias en modo de optimización.

¿Alguna idea?

¿Comprobar qué?

¿Quiere ver cómo se imprime?

En el visualizador.