Распределение немного похоже на поиск места для парковки.
Вы спрашиваете здесь, возможно ли добавить прицеп на ваш автомобиль, который был припаркован на несколько дней.
Ответ таков: в C существует нечто, называемое realloc, которое позволяет вам делать следующее.
Если у меня уже есть достаточно места, чтобы добавить свой трейлер, сделайте это. Если нет парковки в другом месте, достаточно большом для вашего прицепа и вашего автомобиля, что эквивалентно копированию ваших данных.
Другими словами, вы получите сильный и случайный удар по производительности.
Так что бы вы делали в реальном мире? Если бы вы знали, что вам может понадобиться добавить несколько прицепов к вашему автомобилю, вы, вероятно, припаркуетесь в большем месте, чем требуется. А при превышении размера, необходимого для этого места, вы переместите свой автомобиль и прицепы в место с хорошим запасом для будущих прицепов.
Это именно то, что делает строка и вектор STL для вас. Вы даже можете дать им подсказку о размере вашего фьючерсного трейлера, позвонив «резерв». Использование std :: string, вероятно, лучший ответ на вашу проблему.