Скачать MetaTrader 5

Как правильно передать в пользовательскую функцию массив ?

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Forex Trader
114282
Forex Trader  
Может подскажет кто ?
Как правильно передать в пользовательскую функцию массив
и правильно вызвать функцию ?
перерыл весь хелп не найду примера.
Forex Trader
114282
Forex Trader  
MetaEditor - Словарь - Основы языка - Переменные - Формальные параметры
Forex Trader
114282
Forex Trader  
В словаре недостаточно примеров про массивы. Мы изменили существующие примеры в словаре, чтобы исправить эту ситуацию.
Спасибо.
Forex Trader
114282
Forex Trader  
А можно всё таки пример привести ?

Заранее благодарен.
Forex Trader
114282
Forex Trader  
А можно всё таки пример привести ?

скрипт
void start()
{
  int array[3]={1,2,3}, i;

  for (i=0; i<3; i++)
  {
    Print(i," ",array[i]);
  }
  Function(array);
  for (i=0; i<3; i++)
  {
    Print(i," ",array[i]);
  }
}

void Function(int& array[])
{
  int i;

  for (i=0; i<3; i++)
  {
    array[i]*=2;
  }
}
Forex Trader
114282
Forex Trader  
а как передать массив во внешную функцию (в dll)?
если я в dll опишу функцию, принимающую один параметр (скажем типа int) через var (т.е. по ссылке), а в скрипте вызову MyFunc(arr[0]), то будет ли это работать?

т.е. МТ передаст в MyFunc адрес начала массива, но вот вопрос - как организовано представление массива внутри МТ, будут ли элементы массива лежать в памяти последовательно?
Forex Trader
114282
Forex Trader  
Последовательно.
Посмотрите пример в конце ветки "localTime() в ТЕСТЕРЕ"
Функция WinAPI GetLocalTime вообще принимает в качестве параметра не массив, а структуру из 8 слов (WORD - двухбайтовое целое)
typedef struct _SYSTEMTIME { 
    WORD wYear; 
    WORD wMonth; 
    WORD wDayOfWeek; 
    WORD wDay; 
    WORD wHour; 
    WORD wMinute; 
    WORD wSecond; 
    WORD wMilliseconds; 
} SYSTEMTIME, *PSYSTEMTIME;
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий