Передача массива в процедуру с помощью указателя
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 элементов, выскакивает ошибка в ходе выполнения программы, о каком-то переполнении.
Подскажите пожалуйста как решить эту проблему.
|