Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#3

AW: dynamisches Array, wo wird die Länge gespeichert ?

  Alt 17. Feb 2012, 18:20
siehe Unit System:
Delphi-Quellcode:
{ Dynamic array helper functions }

procedure _DynArrayHigh;
procedure _DynArrayClear(var a: Pointer; typeInfo: Pointer);
procedure _DynArrayLength;
procedure _DynArraySetLength;
procedure _DynArrayCopy(a: Pointer; typeInfo: Pointer; var Result: Pointer);
procedure _DynArrayCopyRange(a: Pointer; typeInfo: Pointer; index, count : Integer; var Result: Pointer);
procedure _DynArrayAsg;
procedure _DynArrayAddRef;
Die dyn. Array-Variable ist ein Zeiger auf den Anfang der enthaltenen Daten

Delphi-Quellcode:
record
  refCount: Integer
  length: Integer
  data: array[0..x] of ...;
end;
 
P := @data[0];
Wobei es egal ist, wie ein dyn. Array verwaltet wird.
- dynamische Arrays, Strings und Objekte sollten nicht über DLL-Grenzen hinweg verwaltet werden. (abgesehn BPLs sind im Spiel)
- SetLength macht selber nichts kaputt

Wenn, dann hat du wo Anders ein Problem.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (17. Feb 2012 um 18:23 Uhr)
  Mit Zitat antworten Zitat