Verwende die bereits genannten Funktionen einfach (mehrfach) mit X. In der
OH steht nirgendwo, dass sie beim zweiten Aufruf einen Fehler verursachen.
Mir sind nur wenige spezielle Anwendungsgebiete bekannt, bei denen man dynamisch die größe von Matrizen ändern sollte (Kryptographie, Codierungstheorie, Lineare Algebra iA,...), aber häufig eignen sich andere Konstrukte besser, als (dynamisch) Arrays.
Vielleicht solltest Du vor deiner konkreten Implementierung einen Blick auf Records, Klassen und Listen werfen?