Ich hab gerade einen Knoten im Kopf. Wieso klappt das eine und das andere nicht?
Weil dynamische Array-Variablen genau wie String-Variablen nur Pointer/Referenzen auf den reservierten Speicherbereich sind.
Delphi-Quellcode:
// das funktioniert mit statischen und dynamischen Arrays,
// auch wenn es nicht besonders schön ist
FillChar(s[Low(s)], SizeOf(s[Low(s)]) * Length(s), 0);