А к существующему массиву "прицепить" пустые ячейки, не перезаписывая его, никак нельзя?
pArray = realloc (pArray, newsize);
Эта команда позволяет изменить размер массива, однако при этом
1. Может измениться адрес массива (если в исходном размещении нет свободного места)
2. Эта команда может конфликтовать с new/delete, поскольку "как-то иначе" работает с памятью
Вместо new/delete для указанного массива нужно использовать malloc/free. Или просто один лишь realloc - он достаточно универсален
pArray = realloc (NULL, newsize) - выделение памяти
realloc (pArray, 0) - высвобождение памяти
И разумеется, при использовании массивов
объектов конструкторы и деструкторы придётся вызывать вручную