В C#, Java и других языках обычно есть класс, представляющий собой список, в который можно добавлять новые элементы. Внутри из соображений эффективности его часто реализуют с помощью массива, в котором зарезервировано места с запасом. Как только место заканчивается, выделяется место под больший массив и все элементы копируются в него.
Часто такой трюк реализации называют динамический массив. В C# эта концепция встречается в нескольких классах и методах: List, ArrayList, в методе ToArray() и, наверняка, ещё много где.
Вот так это может быть реализовано:
Войдите или зарегистрируйтесь, чтобы отвечать на тесты и решать задачи.