2019年5月8日水曜日

[MQL4] StringToCharArray() を使うと最後に '\0' が入るので注意

公式リファレンスにちゃんと書いてあるのですが、
[StringToCharArray()](https://docs.mql4.com/convert/stringtochararray) を使うと最後に '\0'いわゆる [ヌル文字](https://ja.wikipedia.org/wiki/%E3%83%8C%E3%83%AB%E6%96%87%E5%AD%97) が入ります。

```mq4
string hoge = "abc";
uchar arr_hoge[];
StringToCharArray(hoge, arr_hoge);
// arr_hoge は ['a', 'b', 'c', '\0']
Print(ArraySize(arr_hoge));
// 4
```

[ArraySize()](https://docs.mql4.com/array/arraysize) を [StringLen()](https://docs.mql4.com/strings/stringlen) のように使ったりすると不具合の原因になるので気をつけましょうやらかした人がここに