Hola,
desde la ayuda de delphi
Cita:
Open array parameters allow arrays of different sizes to be passed to the same procedure or function. To define a
....
When you pass an array as an open array value parameter, the compiler creates a local copy of the array within the routine’s stack frame. Be careful not to overflow the stack by passing large arrays.
|
probablemente llegaba un momento en el que tanto tu array como la copia petaban la pila.
Haciendo esto
Código Delphi
[-]
type ExtArray = array of Extended;
...
procedure Graficar(e : ExtArray);
begin
end;
procedure Hacer;
var
i : cardinal;
e : ExtArray;
begin
Randomize;
SetLength(e, 200000);
for i:=0 to 200000-1 do
e[i] := GenerarRandomico;
graficar(e);
ShowMessage('Listo');
end;
funciona.
PD : alguien sabe como acceder al valor de un puntero a lo 'array', pues he probado
Código Delphi
[-]
graficar(@arraygrande)
..
procedure Graficar (P : PExtended)
var
i : integer
begin
for i := 0 to 200000-1 do
label1.caption := Formatfloat('0.00',extended(p)[i]^;
end;
que tendria que ser la manera, y no