Ich habe es - noch zu Zeiten von Delphi 5 so gelernt - und dies seither auch stets so gehandhabt, daß jedes mit SetLegth(My_Array, Len)
erzeugte dynamische Array am Ende mit My_Array:= NIL;
freigegeben werden muß.
Gilt nur für threadvar, oder? Bei threadvar muss man auch Strings leeren.