Проблема с массивами

 

Здравствуйте!

Прошу помочь разобраться в следующей проблеме.

Казалось бы элементращина - но...

Итак имеем код индикатора:

---------------------------------------------------------------------------

#property indicator_separate_window

int start()

{

double mymassiv[];

mymassiv[0] = 17.0;

mymassiv[1] = 195.0;

Alert(mymassiv[0]);

return;

}

-------------------------------------------------------------------------

По идее должен выскакивать алерт со значением 17. Но алерт упорно выдает значение 0.

Почему?

 

Размер массива не указан.

void start()
 {
  double mymassiv[2];
  mymassiv[0] = 17.0;
  mymassiv[1] = 195.0;
  Alert(mymassiv[0]); 
 }
 
Zhunko:
Размер массива не указан.


Хм...в документации сказано, что размер массива компилятор определяет самостоятельно.

И потом. Даже если указать размер массива и дать вот такой вот код:

#property indicator_separate_window

int start()

{

double mymassiv[1];

mymassiv[0] = 17.0;

mymassiv[1] = 195.0;

Alert(mymassiv[1]);

return;

}

Алерт почему-то выдает 0 (!), а не 195 (что логично).

Почему? Help!

 
Потому что размер массива одна ячейка, а обращаетесь во вторую с номером 1. Её нет.
 

По поводу ячейки - точно - размерность не с ноля а с единицы задается - как то не дошло сразу. Спасибо:)

И все-таки поводу автоматического определения компилятором размерности массива. Почему не работает? В документации сказано Noproblem ;)

 
matstat:

По поводу ячейки - точно - размерность не с ноля а с единицы задается - как то не дошло сразу. Спасибо:)

И все-таки поводу автоматического определения компилятором размерности массива. Почему не работает? В документации сказано Noproblem ;)

Это работает только для статической инициализации.

void start()
 {
  double mymassiv[] = {17, 195};
  Alert(mymassiv[0], ", ", mymassiv[1]); 
 }
 
Zhunko:

Это работает только для статической инициализации.


Спасибо