Я пытаюсь реализовать функцию, которая может увеличить размер динамического массива любого типа данных на единицу, имея массив, содержащий все существующие данные.Функция для изменения размера любого динамического массива
Я хочу сделать это, так как мы регулярно должны использовать и изменять размеры динамических массивов для практических проектов в классе, так что, насколько я бы хотел, я не могу использовать векторы.
Сначала я хотел бы знать, можно ли это сделать, и если да, то кто-нибудь может показать мне, как это сделать.
Это то, что у меня есть до сих пор.
template <typename Temp>
void incArraySize(Temp * dynamicArray, int i_Elements)
{
Temp * dummyArr = new Temp [i_Elements];
for (int l = 0; l < i_Elements; l++)
dummyArr[l] = dynamicArray[l];
delete [] dynamicArray;
dynamicArray = new Temp [i_Elements+1];
for (int l = 0; l < i_Elements; l++)
dynamicArray[l] = dummyArr[l];
delete [] dummyArr;
}
Это нормально работает при первом вызове функции, но я получаю нарушение доступа для последующих периодов времени.
Большое вам спасибо. Я бы никогда не получил это сам. Наверное, я все еще немного изучаю, чтобы делать это по указателям и ссылкам, поскольку эти темы все еще немного расплывчаты для меня. –