Die lokalen Variablen
Delphi-Quellcode:
type
TVAList = array[0..$FFFF] of Pointer;
...
VA: TVAList;
Strings: array[0..High(VA)] of WideString;
belegen jeweils einen Bereich von 65536 * Sizeof(Pointer) auf dem Stack. Das sind 262.144 Byte und entspricht somit ca. 1/4 der maximalen Standard-Stackgröße (eventuell ist die in deiner Anwendung sogar kleiner). Beide Variablen zusammen belegen also ca. 1/2 Megabyte.
Mach aus beiden dynamische Arrays - die werden auf dem Heap anstatt auf dem Stack angelegt.