Как обьявить массив

 

Пытаюсь сделать

int shift=MathMin(500,Bars(_Symbol,PERIOD_CURRENT));
int bar[shift];

ругается 'shift' - positive integer constant expected .

А как правильно объявить если надо определить размер массива в зависимости от переменной ?
 
int shift=MathMin(500,Bars(_Symbol,PERIOD_CURRENT));
int bar[];
ArrayRsize(bar,
shift);
 

В 4 можно было при объявлении массива сразу проинициализировать его значениями, например так

string strArrSYMBOL[9]={"EURUSD", "USDJPY","GBPUSD","USDCHF","AUDUSD","USDCAD","EURJPY","EURGBP","EURCHF"};

а в 5 с многомерными массивами не выходит, пример ниже выдает ошибку

int arrParHandl[9][10]
{
10 , 10  , 1 , 4 , 25 , 0 , 0 , 0 , 0 , 0,
10 , 10  , 1 , 4 , 25 , 0 , 0 , 0 , 0 , 0,
10 , 10  , 1 , 4 , 25 , 0 , 0 , 0 , 0 , 0,
10 , 10  , 1 , 4 , 25 , 0 , 0 , 0 , 0 , 0,
10 , 10  , 1 , 4 , 25 , 0 , 0 , 0 , 0 , 0,
10 , 10  , 1 , 4 , 25 , 0 , 0 , 0 , 0 , 0,
10 , 10  , 1 , 4 , 25 , 0 , 0 , 0 , 0 , 0,
10 , 10  , 1 , 4 , 25 , 0 , 0 , 0 , 0 , 0,
10 , 10  , 1 , 4 , 25 , 0 , 0 , 0 , 0 , 0
};

подскажите где и как это понять без учебника? 

Документация по MQL5: Основы языка / Переменные
Документация по MQL5: Основы языка / Переменные
  • www.mql5.com
Основы языка / Переменные - Документация по MQL5
 

В 4 при объявлении массива можно было проинициализировать , например так

string strArrSYMBOL[9]={"EURUSD", "USDJPY","GBPUSD","USDCHF","AUDUSD","USDCAD","EURJPY","EURGBP","EURCHF"};
или так
int arrParHandl[9][10]=
{
10 , 10  , 1 , 4 , 25 , 0 , 0 , 0 , 0 , 0,
10 , 10  , 1 , 4 , 25 , 0 , 0 , 0 , 0 , 0,
10 , 10  , 1 , 4 , 25 , 0 , 0 , 0 , 0 , 0,
10 , 10  , 1 , 4 , 25 , 0 , 0 , 0 , 0 , 0,
10 , 10  , 1 , 4 , 25 , 0 , 0 , 0 , 0 , 0,
10 , 10  , 1 , 4 , 25 , 0 , 0 , 0 , 0 , 0,
10 , 10  , 1 , 4 , 25 , 0 , 0 , 0 , 0 , 0,
10 , 10  , 1 , 4 , 25 , 0 , 0 , 0 , 0 , 0,
10 , 10  , 1 , 4 , 25 , 0 , 0 , 0 , 0 , 0
};

но последний вариант с двумерным массивом в 5 выдает ошибку ?

Подскажите, как понять и где искать? 

Документация по MQL5: Основы языка / Переменные
Документация по MQL5: Основы языка / Переменные
  • www.mql5.com
Основы языка / Переменные - Документация по MQL5
 

Комментарии не выводятся

 

А теперь аж два раза, видимо глюк форума (((

 
SHOOTER777:

В 4 можно было при объявлении массива сразу проинициализировать его значениями, например так

а в 5 с многомерными массивами не выходит, пример ниже выдает ошибку

подскажите где и как это понять без учебника? 

Правильный вариант:

int arrParHandl[9][10]=
{
  { 10 , 10  , 1 , 4 , 25 , 0 , 0 , 0 , 0 , 0 },
  { 10 , 10  , 1 , 4 , 25 , 0 , 0 , 0 , 0 , 0 },
  { 10 , 10  , 1 , 4 , 25 , 0 , 0 , 0 , 0 , 0 },
  { 10 , 10  , 1 , 4 , 25 , 0 , 0 , 0 , 0 , 0 },
  { 10 , 10  , 1 , 4 , 25 , 0 , 0 , 0 , 0 , 0 },
  { 10 , 10  , 1 , 4 , 25 , 0 , 0 , 0 , 0 , 0 },
  { 10 , 10  , 1 , 4 , 25 , 0 , 0 , 0 , 0 , 0 },
  { 10 , 10  , 1 , 4 , 25 , 0 , 0 , 0 , 0 , 0 },
  { 10 , 10  , 1 , 4 , 25 , 0 , 0 , 0 , 0 , 0 }
};

Более N-мерные - аналогично.

Инициализация переменных

 

так нельзя определять размер массива

надо через специальную функцию

Arrayresize 

 
CoreWinTT:

так нельзя определять размер массива

надо через специальную функцию

Arrayresize 

Не может быть!

Идём по ссылке инициализация переменных и смотрим примеры:

int    a[4][4] = { {1, 1, 1, 1}, {2, 2, 2, 2}, {3, 3, 3, 3}, {4, 4, 4, 4 } };

Чем-то по сути отличается?

Или эта документация уже устарела?

 
simpleton:

Не может быть!

Идём по ссылке инициализация переменных и смотрим примеры:

Чем-то по сути отличается?

Или эта документация уже устарела?

думаю что ответ был адресован топикстартеру, а не вам. :)

 

Всем спасибо!

А ведь я  только сегодня  перечитывал справку. Вот на примеры не обратил внимание. Видать глаз замылился )

Все же отличается от того что было раньше, хотя и не понятно, чем предыдущая форма инициализации лучше теперешней? Наглядней что ли!?

Причина обращения: