エラー、バグ、質問 - ページ 1648 1...164116421643164416451646164716481649165016511652165316541655...3185 新しいコメント TheXpert 2016.08.24 07:43 #16471 Alexey Navoykov: 今の0はそんなもんじゃないのか? Alexey Navoykov 2016.08.24 07:49 #16472 Комбинатор: 今の0はそんなもんじゃないのか?一般に、そこでは配列に割り当てられたメモリの 実サイズを確認し、最適化することができないので、混乱することが多いのです。 Alexey Navoykov 2016.08.24 07:54 #16473 あるいは、次のようなケースを考えてみましょう。 まずArrayResize(arr, 10, 100); 次にArrayCopy(arr, arr2, 0, 0, 20); アレイの予約メモリのサイズは小さくなるでしょうか。 TheXpert 2016.08.24 08:05 #16474 Alexey Navoykov:説明の記憶が正しければ、明示的に小さい数字を与えてもリザーブサイズは減らない。間違っている。ヘルプの例から判断すると、確かに0は0として機能し、その後、-1の提案は非常に理にかなっています。 Alexey Navoykov 2016.08.24 08:16 #16475 ところで、reserve_sizeについては、私の推理はあまり正しくありません。 実は、これはreserveの変更のステップに過ぎず、reserveそのものではありません。 つまり、どこにも保存されていないのでしょう。 しかし、割り当てられたメモリの 総サイズは分かっています。 何とかそれを知り、理想的にはそれを直接管理したいものです。 reserve_size=-1 を指定する場合、size パラメータがこの範囲内にあれば、関数は配列に割り当てられたメモリサイズを変更してはいけません。 size > capacity の場合、バッファはもちろん大きくなります。 Ilyas 2016.08.24 09:08 #16476 配列("inside")には、その配列が 何個の要素に割り当てられて いるかが格納されます。 アロケートされたものを扱うロジック(条件分岐コード)です。ArrayResize(arr,int size,int reserve) { if(arr.allocated<size) if(!ArrayAllocateMemory(arr,size+reserve)) // -> arr.allocated=size+reserve; return(-1); //--- CallConstructorsOrDestructors(arr,size); //--- arr.size=size; return(size); } Alexey Navoykov 2016.08.24 09:36 #16477 Ilyas: 配列("inside")には、その配列が 何個の要素に割り当てられて いるかが格納されます。 アロケート(条件付きコード)を使って作業するロジックです。また、この値は最初に-1されるのでしょうか? つまり、ArrayResize(arr, 0, 100)の最初の呼び出しで、この値が割り当てられるのでしょうか? Ilyas 2016.08.24 10:13 #16478 Alexey Navoykov:この最初に割り振られた値が-1なのか、そうでないのか? イコール0アレクセイ・ナヴォイコフArrayResize(arr, 0, 100)が最初に呼ばれたとき、アロケーションは発生するのでしょうか? アロケーションは,配列のサイズが 上向きに変化した場合にのみ発生します.この場合、配列のサイズは0に等しかったので、変わりません。 A100 2016.08.24 11:12 #16479 FVitalii Ananev: 違いは、最初のケースではエラーが発生しないことです :) また、いずれの場合もC2C++でエラーが発生しないのはなぜですか?(C2C++と何の関係があるのか、その答えは上記をご覧ください) Sergei Vladimirov 2016.08.24 13:31 #16480 信頼済みリストからURLを削除する方法を教えてください。ヘルプには「信頼済みリストからアドレスを削除するには、アドレスを選択して "Delete "ボタンを押してください」とありますが、そのようなボタンは ありません。 1...164116421643164416451646164716481649165016511652165316541655...3185 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
今の0はそんなもんじゃないのか?
一般に、そこでは配列に割り当てられたメモリの 実サイズを確認し、最適化することができないので、混乱することが多いのです。
説明の記憶が正しければ、明示的に小さい数字を与えてもリザーブサイズは減らない。
間違っている。ヘルプの例から判断すると、確かに0は0として機能し、その後、-1の提案は非常に理にかなっています。
reserve_size=-1 を指定する場合、size パラメータがこの範囲内にあれば、関数は配列に割り当てられたメモリサイズを変更してはいけません。 size > capacity の場合、バッファはもちろん大きくなります。
アロケートされたものを扱うロジック(条件分岐コード)です。
配列("inside")には、その配列が 何個の要素に割り当てられて いるかが格納されます。
アロケート(条件付きコード)を使って作業するロジックです。
また、この値は最初に-1されるのでしょうか? つまり、ArrayResize(arr, 0, 100)の最初の呼び出しで、この値が割り当てられるのでしょうか?
この最初に割り振られた値が-1なのか、そうでないのか?
ArrayResize(arr, 0, 100)が最初に呼ばれたとき、アロケーションは発生するのでしょうか?
アロケーションは,配列のサイズが 上向きに変化した場合にのみ発生します.この場合、配列のサイズは0に等しかったので、変わりません。
違いは、最初のケースではエラーが発生しないことです :)