Размерность массива
Подскажите пожалуйста как правильно определить размерность массива, если не известно изначально, сколько в массиве будет строк. Знаю, что можно через ArrayResize, но как это сделать правильно?
Например в следующей функции при определении размерности массива BCC_J[MaxI,8]. Я взял размерность MaxI, а на самом деле размер массива получился меньше.
int m; m=ArrayRange(Matr, 0);// количество строк int n; n=ArrayRange(Matr, 1);// количество столбцов
Prival, спасибо!
Правильно ли я понял, что теперь моя функция должна выглядеть так:
int ReadArrayData_Buy() { Comment("Читаем данные из массива Buy"); for (i=0; i<MaxI; i++) { Bar_1=BCC[i,1]; Bar_2=BCC[i,2]; Bar_3=BCC[i,3]; P_L=BCC[i,4]; P=0; L=0; Sum=1; if (P_L==1) P=1; if (P_L==-1) L=1; for (j=0; j<MaxI; j++) { if (i==j) continue; if (Bar_1==BCC[j,1] && Bar_2==BCC[j,2] && Bar_3==BCC[j,3] && BCC[j,4]==1) {Sum++; P++;} if (Bar_1==BCC[j,1] && Bar_2==BCC[j,2] && Bar_3==BCC[j,3] && BCC[j,4]==-1) {Sum++; L++;} } int m; m=ArrayRange(BCC_J,0);// количество строк ArrayResize(BCC_J,m++); // новое количество строк BCC_J[i,0]=i; BCC_J[i,1]=Bar_1; BCC_J[i,2]=Bar_2; BCC_J[i,3]=Bar_3; BCC_J[i,4]=P_L; BCC_J[i,5]=Sum; BCC_J[i,6]=P; BCC_J[i,7]=L; BCC_J[i,8]=MathRound(P*100/Sum); Comment("Читаем Buy данные из массива и сравниваем с данными. Завершено: "+DoubleToStr(i*100.0/MaxI, 1)+"%"); } Comment("Завершено ReadArrayData_Buy"); return(0); }Типа сосчитал количество строк в массиве и перед записью новой строки, добавил одну строку.
Насколько я знаю нельзя изменить количество строк в массиве. Оно задаётся жестко при объявлении.
ArrayResize меняет размер только первого измерения.
int m=ArrayRange(Matr,0);// количество элементов в строке (первое измерение) int n=ArrayRange(Matr,1);// количество строк (второе измерение)
Насколько я знаю нельзя изменить количество строк в массиве. Оно задаётся жестко при объявлении.
ArrayResize меняет размер только первого измерения.
А может наоборот, нельзя изменить количество столбцов? Вот как выглядит пример использования изменения размерности. Мне тоже нужно изменить ту размерность.

Подскажите пожалуйста как правильно определить размерность массива, если не известно изначально, сколько в массиве будет строк. Знаю, что можно через ArrayResize, но как это сделать правильно?
Например в следующей функции при определении размерности массива BCC_J[MaxI,8]. Я взял размерность MaxI, а на самом деле размер массива получился меньше.