Hallo,
vielleicht erinnert sich noch einer an mein gestriges Problem. Egal, ich habe es jetzt so gelöst:
Delphi-Quellcode:
type TLayer = array of double; //Feld von doubles
type TMap = array of TLayer; //Feld von Zeigern
FMap : TMap;
Function TImgProc.Min(map : Integer) : double;
var
x,y,line: Integer;
lsrc : pDouble;
begin
Result := 99999999.9;
for y := 0 to FHeight-1 do
begin
lsrc := @FMap[map, FWidth*y];
line := FWidth*y;
for x := line to line+FWidth-1 do
begin
//if(Result > lsrc^) then Result := lsrc^; // <-- schnelle Version
//Inc(lsrc); // <--°
if(Result > FMap[map, x]) then Result := FMap[map, x]; // <-- sichere ? Version
end;
end;
end;
Der Zugriff über den Pointer (lsrc := @FMap[map, FWidth*y]
ist schneller, aber darf man sowas? Es ginge ja nur, wenn sichergestellt ist, daß bei FMap (also array of array of double) der Speicher hintereinander allokiert wurde.
Vielen Dank für Hilfe
Tschau!