Errori, bug, domande - pagina 3019

 
Andrei Trukhanovich:

sembra che count=0 funzioni allo stesso modo di count=-1 e nel caso di "" copia un nullo terminale.

È qui che si trova l'errore, appena mostrato con un esempio pratico dove ingenerale ci possono essere sia stringhe vuote che count = 0 da solo (in un ciclo per esempio)

 
A100:

E quanti

dovrebbe copiare se count = 0?

Suggerimento: 3 caratteri sono copiati quando count = 3.

Non voglio nemmeno discutere. Funziona correttamente.

Andrei Trukhanovich:

Sembra che count=0 funzioni allo stesso modo di count=-1 e nel caso di "" copia un null terminale, quindi non puoi convertire correttamente una stringa vuota senza ulteriori controlli

Una stringa vuota (NULL) non contiene un terminale null. Lì tutto sembra funzionare in modo logico.

 
fxsaber:

Non voglio nemmeno discutere. Funziona correttamente.

Se non ci sono argomenti, è ovvio che non è necessario.

fxsaber:

Una stringa vuota (NULL) non contiene un terminale null. Secondo me, tutto funziona in modo logico.

Una stringa vuota è "" e NULL non è una stringa vuota - è una stringa non inizializzata, cioè non è affatto una stringa eStringToCharArray con NULL non funziona, risultato dell'errore: 4009

 
A100:

Se non ci sono argomenti, allora ovviamente non avete bisogno di

Una stringa vuota è "" e NULL non è una stringa vuota - è una stringa non inizializzata, cioè non è affatto una stringa eStringToCharArray con NULL non funziona, risultato dell'errore: 4009

Lei si sbaglia, per usare un eufemismo.

 
fxsaber:

Lei si sbaglia, per usare un eufemismo.

Per favore, spiegate se avete qualcosa da dire nel merito

 
A100:

Per favore, spiegate se avete qualcosa da dire nel merito

string Str = NULL;

Print(Str == "");
 
fxsaber:

Risultato: falso

Qual è la contraddizione con questa affermazione?

Forum sul trading, sistemi di trading automatico e test di strategia

Bug, bug, domande

A100, 2021.05.24 20:07

La stringa vuota è "" mentre NULL non è una stringa vuota - è una stringa non inizializzata che significa che non è affatto una stringa eStringToCharArray con NULL non funziona e causa errore: 4009


 
A100:

Risultato: falso

E qual è la contraddizione con questa affermazione?

La variabile è inizializzata. Potete, naturalmente, pensare a stringa come a un puntatore a una classe interna di stringhe.

 
fxsaber:

La variabile è inizializzata. Potete, naturalmente, pensare a stringa come a un puntatore a una classe interna di stringhe.

Se è inizializzato, allora perché il

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

errore 4009

STRINGA ERRATA NON INIZIALIZZATA

4009

Stringa non inizializzata

 
fxsaber:

Non voglio nemmeno discutere. Funziona correttamente.

Una stringa vuota (NULL) non contiene un terminale null. Secondo me, tutto funziona in modo logico.


Non è questo il problema, il problema è che questo codice restituisce 4 e dovrebbe restituire 0.

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