![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() var
DATA : array of Float; //динамический массив, размер которого задаю в тексте программы. DATAlength: integer; i,num: integer; //далее идёт процедура, которая находит максимальный элемент в массиве, и возвращает номер этого элемента в массиве. В эту процедуру нужно передать массив(точнее указатель на массив, чтобы не загружать память) procedure maxelement(mass : array of Float; mNFFT : integer; var element : integer); begin element:=0; for i:=1 to mNFFT-1 do begin if abs(mass[i])>abs(mass[element]) then element:=i; end; end; //далее идёт кусок из текста, в котором обращаюсь к процедуре setlength(DATA, DATAlength); ... maxelement(DATA, DATAlength, num); Правильно ли я понимаю, что если оставить всё как описано выше, то в процедуру передаётся массив целиком, а не указатель на него? Если всё таки это передача указателя, то почему когда передаю массивы размерности примерно 100000 - 150000 элементов всё в порядке. А как передаю массив примерно на 360000 элементов, выскакивает ошибка в ходе выполнения программы, о каком-то переполнении. Подскажите пожалуйста как решить эту проблему. |