Копирование из одного динамически распределенного массива в другой C ++

Похоже, у него должно быть очень простое решение, но я просто не могу его понять. Я просто создаю массив с измененным размером и пытаюсь скопировать все исходные значения, а затем, наконец, удаляю старый массив, чтобы освободить память.

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] копирует значения по ссылке, а не по значению, поскольку печать orig после изменения размера возвращает кучу ненужных значений, если я не закомментировать удалить [] ориг . Как я могу сделать глубокую копию оригинала до измененного размера, или есть какая-то другая проблема, с которой я столкнулся? Я не хочу использовать std :: vector.

6
задан Rahul Gupta-Iwasaki 8 November 2011 в 20:34
поделиться