"ダミー "からの質問 - ページ 124

 
MetaDriver:

OK、行ってきます。:) 私も端末の外にいます。

初歩的なことを確認 -ArrayResize(...)を使おうとしています。

使用しようとしている」という表現から判断すると、「配列は静的です」というタイプのエラーが発生する可能性が高いです。では、確認してみましょう。
 
MetaDriver:

ArrayResize(...)を使おうとするのは初歩的なことです。

瀧定めて簡略化
 

さて、ここで間違いがあります。Metaquotesの市民の皆さん、ご注目ください。

   int j[1];
   Alert("Размер массива из одного элемента без списка инициализации = ", sizeof(j), "   Массив динамический? ", ArrayIsDynamic(j));

   int k[];
   Alert("Размер структуры для динамического массива = ", sizeof(k), "   Массив динамический? ",ArrayIsDynamic(k));
   
   int g[] = {0};
   Alert("Размер массива из одного элемента со списком инициализации = ", sizeof(g), "   Массив динамический? ",ArrayIsDynamic(g));
エラーの本質: 初期化リスト (int g[] = {0}; ) を配列に使用すると、sizeof(g) 関数は struct MqlArrayObject (動的配列用に作成) のサイズを 提供します。
Документация по MQL5: Основы языка / Операции и выражения / Другие операции
Документация по MQL5: Основы языка / Операции и выражения / Другие операции
  • www.mql5.com
Основы языка / Операции и выражения / Другие операции - Документация по MQL5
 
220Volt:
エラーの本質: 初期化リスト (int g[] = {0}; ) を配列に使用した場合、sizeof(g) 関数は (動的配列用に作成された) struct MqlArrayObject のサイズを 表示します。
そして同時に、ArrayIsDinamic()は、配列が静的であると言っている?
 
MetaDriver:
そして、ArrayIsDinamic()は、配列が静的であると言っているのですね。

j - 静的

k - ダイナミック

g - 静的

 
220Volt:
....

g - 静的

ひどいな スポルトロットに書けよ 裏を取るぞ
 
220Volt:

さて、ここで間違いがあります。首都圏の皆さん、ご注目ください。

エラーの内容:配列に初期化リスト(int g[] = {0};)を使用すると、関数sizeof(g)が(動的配列用に作成された)MqlArrayObject構造体のサイズを 出力してしまいます。

メッセージありがとうございました!エラーは修正されました。
 
mql5:
メッセージありがとうございます、エラー修正しました。

イリヤス!!!ちょっと待ったーーーー

具体的にはどのように修正されたのでしょうか?宣言で 解析された配列が ダイナミック(リサイズ可能)になったのでしょうか?

それとも完全に静止画?

Документация по MQL5: Основы языка / Переменные
Документация по MQL5: Основы языка / Переменные
  • www.mql5.com
Основы языка / Переменные - Документация по MQL5
 
MetaDriver:

それとも完全に静止しているのでしょうか?
もちろん、静止画です。
 
Renat:
もちろん、静的なコードです。

ああ、今わかったよ。

Renat、私は長い間、ちょうどこの問題について提案を持っています。 少なくとも静的なものについては、配列のための名前付き型付けを作ってください(他のすべての型はすでにそれを持っています)。

つまり,例えば,typedef Int8 = int[8]; と宣言することができる.

問題の代償は、より大きなサイズの配列の中の部分配列である1次元(2、3次元)配列を関数に渡すことができることです。

つまり、さらに :Int8 arr[...] と宣言すれば、arr[i]func(Int8 &a) {...} 関数に渡すことができるのです。

現在、私はmql5で多くの余分なアクションを実行する必要があり、関数にサブアレイを渡すことができないため、多くの醜いコードを書かなければなりません。

Servicedeskで書かない のは、私には議論の余地がありそうな話題だからです。

Общайтесь с разработчиками через Сервисдеск!
Общайтесь с разработчиками через Сервисдеск!
  • www.mql5.com
Ваше сообщение сразу станет доступно нашим отделам тестирования, технической поддержки и разработчикам торговой платформы.