Массив и как с ним работать

 

Доброе время суток! У меня возник вопрос по поводу инициализации массивов. В учебнике написано, что: Массив может быть инициализирован только константами соответствующего типа. Одномерные и многомерные массивы инициализируются одномерной последовательностью констант, перечисленных через запятую. Последовательность обрамляется фигурными скобками. В данном случае меня смущает слово "константа". Разве определенному индексу массива не может быть присвоено значение через переменную.Если может. тогда вот какой вопрос. некая функция должна передавать по ссылке два массива данных, например:

void SomeFunction(int& firstmassive[][3],double& secondmassive[][3])

{

 int iCount=-1,

      ifirst,isecond,ithird;

 double dfirst,dsecond,dthird;

...

 iCount++;

  firstmassive[iCount][0]=ifirst;firstmassive[iCount][1]=isecond;firstmassive[iCount][2]=ithird;

  secondassive[iCount][0]=dfirst;secondmassive[iCount][1]=dsecond;secondmassive[iCount][2]=dthird;

  print("iCount= "+iCount+" firstmassive_2= "+firstmassive[iCount][1]+" isecond= "+isecond);

...

return(0);

}

Когда я выпускаю данную функцию в работу, то в закладке "эксперты" в терменале сообщения такого рода, например:

iCount= 0 firstmassive_2= 0 isecond= =15
iCount= 1 firstmassive_2= 0 isecond= =25
Получается, что массиву не передается значение переменной, хотя последняя значение имеет. Что я сделал не так?
 
kifa911:
Получается, что массиву не передается значение переменной, хотя последняя значение имеет. Что я сделал не так?


Покажите кусок программы, где описаны передаваемые в функцию массивы.

И кусок, где производится вызов функции.

 
PapaYozh:


Покажите кусок программы, где описаны передаваемые в функцию массивы.

И кусок, где производится вызов функции.


double dTriangle[][3];
int    iTriangle[][3];

Они описаны до функции Start()

int Start()
{
 SomeFunction(iTriangle,dTriangle);
}
 
Не определены размеры массивов, да и в функции есть ошибка
 
Vinin:
Не определены размеры массивов, да и в функции есть ошибка

Первое измерение обязательно определять, даже если я не знаю какой будет размер?

И какая ошибка в функции? Если можете подскажите пожалуйста.

 
kifa911:

Первое измерение обязательно определять, даже если я не знаю какой будет размер?

И какая ошибка в функции? Если можете подскажите пожалуйста.


Должен же кто-то знать размер массива, а ошибка- выход за пределы диапазона

Есть ряд функций для работы с массивами https://docs.mql4.com/ru/array

И ошибки можно посмотреть https://docs.mql4.com/ru/constants/errors

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