Обработка нескольких массивов одной функцией

 
Даны несколько массивов одинаковой размерности (но не размера!). Небходимо единообразно обрабатывать их в одной функции. Сами массивы в функцию не передаются, по ссылке можно передать один массив, имеющий только одно определенное в описании переменных функции имя. Писать отдельные фактически одинаковые функции некрасиво, да и опасно плохо обнаруживаемыми ошибками, а массовое использование ArrayResize и ArrayCopy сделает прогу еле ходящим инвалидом... Что можете посоветовать?
 
А в чем проблема? Функция ArrayRange() не подходит?
 
Rosh:
А в чем проблема? Функция ArrayRange() не подходит?

Не о том речь. Необходимо передавать массивы (около 10) с разными именами на обработку одной функции - по очереди, конечно. Можно, конечно, описать их всех в функции, но тогда в этом теряется смысл. Проблема в том, что в описании функции имя массива для ссылки задается жестко и привязывается только к конкретному массиву.
 
Передавать массив по ссылке и никаких проблем
void FunctionForAllArrays(double & Arr[]){
   ...
}
 

Нверно, плохо объясняю... Вет в примере

void FunctionForAllArrays(double & Arr[])

передается ссылка на архив с именем Arr[] и НИКАКОЙ ДРУГОЙ! У меня десяток архивов с РАЗНЫМИ именами, которые надо обработать ОДНОЙ функцией.

 
muallch:

Нверно, плохо объясняю... Вет в примере

void FunctionForAllArrays(double & Arr[])

передается ссылка на архив с именем Arr[] и НИКАКОЙ ДРУГОЙ! У меня десяток архивов с РАЗНЫМИ именами, которые надо обработать ОДНОЙ функцией.


простите, конечно, не "архив", а "массив"... заработался. ..
 
Ну тогда не передавайте по ссылке, а в функции принимайте по ссылке)))
 
Integer:
Ну тогда не передавайте по ссылке, а в функции принимайте по ссылке)))


Екскьюз меня, а это еще как?.. Поподробнее, если можно!

 
start(){
MyArr1[]={...}
MyArr2[]={...}
 
FunctionForAllArrays(MyArr1);//обрабатываем массив 1
FunctionForAllArrays(MyArr2);//обрабатываем массив 2
 
 
}
 
void FunctionForAllArrays(double & Arr[]){
   ...//здесь работаем с массивом Arr и все что с ним делается происходит с массивом, который указан аргументом при вызове этой функции.
}
 
Integer:
start(){
MyArr1[]={...}
MyArr2[]={...}
 
FunctionForAllArrays(MyArr1);//обрабатываем массив 1
FunctionForAllArrays(MyArr2);//обрабатываем массив 2
 
 
}
 
void FunctionForAllArrays(double & Arr[]){
   ...//здесь работаем с массивом Arr и все что с ним делается происходит с массивом, который указан аргументом при вызове этой функции.
}


Так было бы хорошо, но...

1. Массивы не передаются как аргументы в вызове функции - даже если в описании есть ссылка = &. Вычитано в форуме и хелпе на mql.

2. Кроме того, и в связи с п.1, ссылка в описании функции должна указывать на уже реально существующее имя массива, которое не может варьироваться в процессе выполнения проги.

 

какой ужас!!!