Forum: Library: Object-Pascal / Delphi-Language
Prism
by sakura,
13. Sep 2004
Nein, sie arbeiten intern vollständig anders. SetLength erstellt erst das "äußere" Array und anschließend die inneren, somit ist kein zusammenhängender Speicherblock garantiert. New hingegen erstellt den kompletten Array mit allen Sub-Arrays "auf einen Schlag" und kann somit einen zusammenhängenden Speicherblock erstellen und ist schneller.
Diese Information habe ich aus einer Email von Rudy...
Forum: Library: Object-Pascal / Delphi-Language
Prism
by sakura,
13. Sep 2004
Doch nicht ganz ;-) SetLength erstellt den neu reservierten Bereich für multidimensionale Arrays nicht unbedingt in einem gesamten Speicherbereich zur Verfügung. Ausserdem ist der Overhead bei SetLength um einiges größer als bei New :-)
...:cat:...
Forum: Library: Object-Pascal / Delphi-Language
Prism
by sakura,
13. Sep 2004
Ja, tut es, allerdings finde ich es interessant, dass New() dahingehend erweitert wurde ;)
...:cat:...
Forum: Library: Object-Pascal / Delphi-Language
Prism
by sakura,
12. Sep 2004
Hi,
durch Zufall bin ich in Delphi 8 auf ein interessantes Konstrukt gestoßen, wie man Arrays schnell initialisieren kann.
procedure TWinForm.Button1_Click(sender: System.Object; e:
System.EventArgs);
type
TSimpleArray = Array of Byte;
TMulitDimArray = Array of Array of Byte;
var
SimpleArray: TSimpleArray;