Просто поставьте ключевое слово
const перед параметром и ваша функция заработает с массивом любого размера:
Код:
function _Find_Min(const _data: array of integer): integer;
var
_i, _value : integer;
begin
_value := _data[0];
for _i := 1 to Length(_data)-1 do
_value := min(_value, _data[_i]);
_Find_Min := _value;
end;
Если переменная передается без указания const или var, будет сделана ее копия (при изменении значения параметра в теле функции оригинальная переменная не изменится). В данном случае происходит создание локальной копии массива в стеке. Так как размер стека ограничен - получаете Stack overflow на больших массивах.
P.S. При работе с указателями можно легко понаделать ошибок, которые потом будет сложно найти. Так что лучше без надобности их не использовать.