Term *temp;
temp = new Term[(getCapacity() + 1)];
capacity++;
temp = ptr;
ptr[getEltsInUse()] = T;
eltsInUse++;
delete [] ptr; // reclaim space
ptr = temp;
Я работаю с объектом Array, и здесь я пытаюсь добавить объект к массиву, когда он заполнен. Здесь он объявляет временный указатель на один размер больше и копирует оригинал в temp, а затем удаляет оригинал. Последняя строка предназначена для перемещения указателя ptr, указывающего на то же, что и temp, но я не уверен, что я сделал это правильно. Псевдо-код, который я получил это:Расширение объекта массива и перемещение указателя?
- Declare Term * Температура
- новый массив Term размера емкости + 1 для температуры, чтобы указать на
- ИНК мощностью
- Копирование элементов из PTR массив временного массива
- Установите новый срок на конце
- вкл eltsInUse
- удалить PTR, чтобы освободить старый массив
- Установить точку ptr, где временные точки (вновь построенный массив)
Извините, если это действительно очевидный ответ.
'temp = ptr;' Теперь вы потеряли память, которую вы только что выделили, почему это даже там? – user657267