Einzelnen Beitrag anzeigen

rowkajjh

Registriert seit: 9. Jan 2006
38 Beiträge
 
#1

Liegt bei array of Werte hintereinander?

  Alt 10. Jan 2006, 15:25
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!
  Mit Zitat antworten Zitat