conststring text[] = { "ABC", "", "ABC" };
uchar array[];
int start = 0;
int n = 0;
for(int i=0; i < ArraySize(text); i++)
{
constint count = StringLen(text[i])+1;
Print(count);
n += StringToCharArray(text[i], array, start, count);
start += count;
}
Print(ArraySize(array), ":", n );
2021.05.2422:56:35.959 Test (AUDUSD,M5) 42021.05.2422:56:35.959 Test (AUDUSD,M5) 12021.05.2422:56:35.959 Test (AUDUSD,M5) 42021.05.2422:56:35.959 Test (AUDUSD,M5) 9:9
初期化されるのであれば、なぜ実行が
エラー4009
err_notinitialized_string
4009
未初期化文字列
これは用語の問題です。
問題はそこではなく、このコードが4を返し、0を返すべきであるということです。
これは、-1と0が同じ結果になることを意味しているに過ぎない。同じ結果でも、おそらくINT_MAXと 何か別のものが出てくるでしょう。
通常の機能の一部を知っている/知っているだけで結構です。
常用漢字の機能を知っている/知っている程度でOKです。もちろんです。特に、その機能がバグである場合 ))
"mql5言語の特徴"というブランチに、うまく、そして明確に追加してください。
ただ、-1と0は同じ結果になるということです。
これが論理的で正しいと思うのであれば、自分の論理が論理的かどうか疑わしくなると思います
もちろんです。特に、その機能がバグである場合 ))
さて、そして是非とも「mql5言語の特殊性...」というブランチに追加してください。
ドキュメントを少しいじれば、もはやバグではありません。
論理的に正しいと思うのであれば、その論理を考えるきっかけになると思います。
哲学は実践から遠い。
クリーンコピー(終端ヌル文字なし)が必要なため、+1 は必要ありません。バグでないことを証明したい場合は、引数が必要です
は、クリーンコピーである必要があります(終端NULL文字がない)。
ヒゲの多いデザインです。
世界記録
ドキュメントを少しいじれば、もはやバグではありません。
哲学は実践から遠い。
そして、このような矛盾した結果を、実践者は理論家にどう説明するのだろうか。
結果:4:0
期待度:0:0
それとも、ドキュメントも少しは修正するのでしょうか?まあ、結局のところバグを修正するためではないんですけどね
私の説明は簡単で、これらの標準的な関数のいずれかにバグがあり、どの関数かさえ分かっているのです。
そして、そのような結果を、実務家が理論家にどのように説明するのでしょうか。
この関数のどれかにバグがあり、そのバグがどれなのかもわかっているのです。
count=0の時に何を出力するかはドキュメントの問題なので、バグはこの2つの関数の齟齬であって、その結果ではない。