Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

Re: Problem beim Kopieren von dyn. Arrays

  Alt 23. Jun 2006, 14:21
Strings (AnsiStrings) sind auch "nur" dynamische Arrays und im Gegensatz zu dem, was laut dem in der OH stehen soll, werden Strings auch kopiert, wenn man sie ändert, obwohl sie intern ebenfalls dynamische Arrays sind.

Und laut der offiziellen Definition dieser dynamsichen Typen mit Refferenzzählung sollte es jedenfalls so sein (wie ich geschrieben hab)?


Nein, getestet hatte ich es noch nicht, aber ich konnte bisher auch noch keinen Fehler entdecken, welcher darauf zu führen war, daß nicht kopiert wurde ... obwohl ich schon ein paar dynamische Arrays verwendet hab.


wie gesadt, Strings sind intern eigentlich genauso wie dynamische Arrays definiert (abgesehn, daß sie bei 1 beginnen und noch ein "unsichtbares", zusätzliches Feld mit dem Wert #0 am Ende haben) und dort funktioniert es doch aus o.O
Delphi-Quellcode:
var A, B: String;
begin
  SetLength(A, 1);
  A[1] := '1';
  B := A;
  B[1] := '2';
  // A[1] ist immernoch '1'
end;
Also wenn das Fettgedruckte stimmt, dann würde ich das als einen GROOOOOßEN, absichtlichen Delphi-Bug ansehen
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat