Вопрос по передаче массивов в функцию?
Конечно можно. А что помешало проверить?
У тебя ошибка возникает из-за размерности массивов, mas2 двухмерный массив, а на входе в функцию одномерный.
void OnStart() { int mas1[]; int mas2[][2]; func(mas1, mas2); } //+------------------------------------------------------------------+ void func( int &arr[], int &arr2[][]) { Alert( ArrayDimension( arr ) ); }
Код вставляй через кнопку SRC на панельке выше окна ввода.
Может перегруженной функцией.
По сути будут разные функции, но вызываться будут одинаково.
Спасибо. То есть я правильно понял, что размерность многомерного массива нужно указывать явно при передаче в функцию.
Я хотел сделать вот так изначально:
void OnStart() { int mas1[2]; int mas2[][2]; func( mas1 ); func( mas2 ); } //+------------------------------------------------------------------+ void func( int &arr[] )//здесь хотел указать что передаю массив(любой размер). То есть подаю массив разной размерности а в зависимости от размерности по разнму растягиваем. { if( ArrayDimension( arr )==1 )//а здесь в зависимости от размерности растягивать { ArrayResize( arr,2 ); } if( ArrayDimension( arr)>1 )// и здесь по разному { ArrayResize( arr,ArraySize( arr)+1); } }
Так не получится.
Хочу написать функцию печати размерности массива.
void OnStart()
{int mas1[];
int mas2[][2];
func( mas1 );
func( mas2 );
}
//+------------------------------------------------------------------+
void func( int &arr[] )
{
Alert( ArrayDimension( arr ) );
}
выдает ошибку: 'mas2' - invalid array access Проверка 1.mq4 72 10
Вопрос можно ли в функцию одновременно передавать одномерные и многомерные массивы. Не могу понять?