gaggitのブログ

コーディング、ガジェット、TIPS関連、FX

MT4 array out of range

久々にMT4でコーディングしています。もう7,8年ぶりぐらいなので、すっかり忘れてます。今回、デフォルトでついてくるパラボリックSARのソースを基にdouble型の配列にLow[0]の値を代入していたのですが、「array out of range」が発生しました。

(下記は、抜粋)

変更前

double ExtSARBuffer;

ArrayInitialize(ExtSARBuffer,0.0);
ExtSARBuffer[0]=Low[1];

 

変更後

double ExtSARBuffer;

ArrayResize(ExtSARBuffer,1001,10);
ArrayInitialize(ExtSARBuffer,0.0);
ExtSARBuffer[0]=Low[1];

 

変更点は、配列のイニシャライズの前にArrayResize()を使用して、メモリを割り当てています。逆に言うと、元のパラボリックSARのソースがエラーもなくなぜ動作するのか、不思議です。