Errores, fallos, preguntas - página 3019

 
Andrei Trukhanovich:

parece que count=0 funciona de la misma manera que count=-1 y en caso de "" copia un null terminal.

Aquí es donde radica el error, simplemente se muestra con un ejemplo práctico donde engeneral puede haber tanto cadenas vacías como count = 0 por sí mismo (en un bucle por ejemplo)

 
A100:

¿Y cuántos

¿debe copiar si cuenta = 0?

Sugerencia: se copian 3 caracteres cuando el recuento = 3.

Ni siquiera voy a discutir. Funciona correctamente.

Andrei Trukhanovich:

Parece que count=0 funciona igual que count=-1 y en el caso de "" copia un null terminal, por lo que no se puede convertir correctamente una cadena vacía sin comprobaciones adicionales

Una cadena vacía (NULL) no contiene un nulo terminal. Todo parece funcionar lógicamente allí.

 
fxsaber:

Ni siquiera voy a discutir. Funciona correctamente.

Si no hay argumentos, por supuesto que no hay que hacerlo.

fxsaber:

Una cadena vacía (NULL) no contiene un nulo terminal. En mi opinión, todo funciona allí lógicamente.

Una cadena vacía es "" y NULL no es una cadena vacía - es una cadena no inicializada, es decir, no es una cadena en absoluto yStringToCharArray con NULL no funciona, resultado del error: 4009

 
A100:

Si no hay argumentos, entonces por supuesto que no necesita

Una cadena vacía es "" y NULL no es una cadena vacía - es una cadena no inicializada, es decir, no es una cadena en absoluto yStringToCharArray con NULL no funciona, resultado del error: 4009

Se equivoca, por decirlo suavemente.

 
fxsaber:

Se equivoca, por decirlo suavemente.

Por favor, explique si tiene algo que decir sobre el fondo

 
A100:

Por favor, explique si tiene algo que decir sobre el fondo

string Str = NULL;

Print(Str == "");
 
fxsaber:

Resultado: falso

¿Cuál es la contradicción de esta afirmación?

Foro sobre trading, sistemas de trading automatizados y comprobación de estrategias

Bichos, errores, preguntas

A100, 2021.05.24 20:07

Lacadena vacía es "" mientras que NULL no es una cadena vacía - es una cadena no inicializada lo que significa que no es una cadena en absoluto yStringToCharArray con NULL no funciona y causa el error: 4009


 
A100:

Resultado: falso

¿Y cuál es la contradicción con esta afirmación?

La variable se inicializa. Por supuesto, puedes pensar en la cadena como un puntero a una clase interna de cadena.

 
fxsaber:

La variable se inicializa. Por supuesto, puedes pensar en la cadena como un puntero a una clase interna de cadena.

Si se inicializa, entonces por qué el

void OnStart()
{
    uchar array[];
    const string text = NULL;
    StringToCharArray( text, array );
    Print( GetLastError());
}

error 4009

ERR_NOTINITIALIZED_STRING

4009

Cadena no inicializada

 
fxsaber:

Ni siquiera voy a discutir. Funciona correctamente.

Una cadena vacía (NULL) no contiene un nulo terminal. En mi opinión, todo funciona allí lógicamente.


Ese no es el problema, el problema es que este código devuelve 4 y debería devolver 0.

Print(StringToCharArray( "ABC", array, 0, 0));