Передать двумерный массив по ссылке можно?

 
Нужно передать в функцию для заполнения двумерный массив. Функция объявлена blablabla(double & values[][2]). Внутри функции значения присваиваются, но после выхода из функции в заполяемых элементах нули. Ограничение MQL? В хелпе есть только пример передачи по ссылке одномерного массива.
 
marketeer писал(а) >>
Нужно передать в функцию для заполнения двумерный массив. Функция объявлена blablabla(double & values[][2]). Внутри функции значения присваиваются, но после выхода из функции в заполяемых элементах нули. Ограничение MQL? В хелпе есть только пример передачи по ссылке одномерного массива.
int start(){
   double bla[10][2];
   blablabla(bla);
}

void blablabla(double & values[][]){

}
Примерно так
 

У меня массив ресайзится по первой размерности перед вызовом (уж не знаю - важно ли это). Писал в заголовке функции и массив без указания размеров как у Вас, и с указаниями - все равно наружу изменения не передаются. В общем, вернулся к паре массивов.

 

Все работает.

И так работает:

int start()
  {
//----
   int y[][2];
   x(y);
   for(int i=0;i<10;i++)Alert("#"+i+" - "+y[i][0]+", "+y[i][1]);
   
//----
   return(0);
  }
//+------------------------------------------------------------------+

int x(int & y[][]){
   ArrayResize(y,10);
   for(int i=0;i<10;i++){
      y[i][0]=i;
      y[i][1]=10+i;      
   }
}

И так работает:

int start()
  {
//----
   int y[][2];
   ArrayResize(y,10);
   x(y);
   for(int i=0;i<10;i++)Alert("#"+i+" - "+y[i][0]+", "+y[i][1]);
   
//----
   return(0);
  }
//+------------------------------------------------------------------+

int x(int & y[][]){
   for(int i=0;i<10;i++){
      y[i][0]=i;
      y[i][1]=10+i;      
   }
}
Причина обращения: