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