Кажется, у него должно быть очень простое решение, но я просто не могу понять.Я просто создаю массив с измененным размером и пытаюсь скопировать все исходные значения, а затем, наконец, удаляю старый массив, чтобы освободить память.
void ResizeArray(int *orig, int size) {
int *resized = new int[size * 2];
for (int i = 0; i < size; i ++)
resized[i] = orig[i];
delete [] orig;
orig = resized;
}
Похоже, что здесь происходит то, что resized[i] = orig[i]
копирует значения по ссылке, а не по значению, так как печать оригинала после изменения размера возвращает кучу ненужных значений, если я не закомментирую delete [] orig
.Как я могу сделать глубокую копию с оригинала, чтобы изменить размер, или есть какая-то другая проблема, с которой я сталкиваюсь?Я не хочу использовать std :: vector.