sSIGSEGV -> Speicherzugriffsverletzung. Hast Du evtl. vorher schon etwas mit Items gemacht? Geht es mit deutlich kleineren Werten, z.B. 10 (zum Test).
Ansonsten, ermittele zuerst die Anzahl and lege dann die Länge fest. Oder nutze, noch besser, eine TObjectList, bzw. TList<TConnection>. Wie auch immer, in vielen Situationen arbeitest Du wahrscheinlich mit nicht einmal 10 Objekten, also warum den Speicher so nutzlos verbrauchen? Auch wenn es nur Pointer sind, reden wir am Ende über ein paar MB sinnlos verschwendeten Speichern, wenn Du es des Öfteren so handhabst.
..
...
P.S. Wenn Du schon mit 100000 Objekten rechnest, dann kommt irgendwann jemand mit mehr. Ist leider einfach so
P.P.S.: In der Erklärung schreibst Du 10000, im Code sind es 100000. Bist Du Dir sicher, bei der anzunehmenden Menge.