Ссылки на массивы и серии как параметры пользовательских функций.

 
Привет.
Хочу в пользовательскую функцию передавать ссылку на свой массив и собственно
серии, на основе которых мой массив будет заполняться.
Например вот так:
...
double MyBuffer[];
...
Calculate(MyBuffer,High,Low);


Сначала попробовал вот такое обьявление:

Сalculate(double& MyBuf[], double& H[], double& L[])
{
  MyBuf[5] = (H[1]+L[1])/2;
  return(0);
}


Сама процедура нормально откомпиллировалась, а вызов ее
из основной программы ругается "Incompatible types" на High и Low

Тогда я сделал вот так вот:

Сalculate(double& MyBuf[], double H[], double L[])
{
  MyBuf[5] = (H[1]+L[1])/2;
  return(0);
}


И вызов тоже благополучно откомпиллировался.

В связи с этим возникли вопросы:
1. Правильно ли я понимаю, что double& MyBuf[] - значит изменять массив можем в процедуре, а
double MyBuf[] - изменять массив не можем в процедуре?
2. Копируется только ссылка на массивы или создаются копии массивов в случае double MyBuf[] (без &)
3. Как работать с массивом double H[], который передается в процедуру? Имеется ввиду как с серией
(обратная индексация) или как с нормальным массивом(прямая индексация). Ибо подставляется в
параметр процедуры серия High.

Буду благодарен если господа разработчики покажут пример работы с подобными вызовами.

Жду с нетерпением.
Спасибо.

 
Присоединяюсь к просьбе - передача массивов в функции - краеугольный камень (для меня тоже). Примеры работы и общие объяснения очень сильно помогли бы.
 
1. всё правильно. таймсерии нельзя передавать по ссылке. передача массива по ссылке предполагает, что этот массив будет модифицироваться, что никак нельзя допустить по отношению к таймсерии. если вы хотите просто читать любой переданный массив, то уберите модификатор "амперсанд".
2. в любом случае копируется только "ссылка на массив", копии не создаются.
3. для того, чтобы выяснить, что за массив передан в функцию, можно спросить ArrayIsSeries (является ли массив таймсерией). а ещё можно спросить ArrayAsSeries (индексация задом наперёд, как у таймсерии)
достойный пример пока не готов. по мере готовности будем выкладывать статьи
Причина обращения: