Zitat:
SetLength(Result, 10);
// Array wird mit nil initialsiert, da die Elemente vom Typ array sind.
Hier ist das immer so.
Automatisch verwaltete Typen werden immer initialisiert, denn sonst könnten sie nicht autonatisch verwaltet werden. (von den entsprechenden Funktionen: SetLength, New, Create usw.,)
Sowas Einfaches, wie z.B. Integer, Char, Record, statisches Array usw., wird per se nicht initialisiert, es sei denn es liegt in einem Bereich, welcher immer initialisiert wird. (z.B. globale Variablen oder als Felder in Klassen)
Wie das nun beim Integer-Array aussieht, hab ich grade einfach nicht im Kopf.
Vorallem ob das bei allen Delphi-Versionen und Plattformen auch gleich ist ... ansonsten kann man bei sich ja einfach mal im Code Nachsehen, oder das SetLength debuggen.