Я пытаюсь решить некоторые проблемы в своей программе, и, похоже, проблема связана с моим конструктором копирования или с моим деструктором. Я получаю исключение памяти.Создайте глубокую копию массива C++
любая помощь мне оценили Спасибо
ArrayStorage::ArrayStorage(const ArrayStorage &a):readArray(a.readArray),arraysize(a.arraysize)
{
readArray = new string[arraysize]; //create the array
memcpy (readArray,a.readArray,sizeof(string)*arraysize);//Copy the values of bytes from the location pointed at by the souce and destination.
}
ArrayStorage::~ArrayStorage(void)
{
delete[](readArray);//deconstuctor to delete the array.
}
это было бы лучше, чтобы скопировать массив, кроме тетсру:
for (int i = 0 ; i < arraysize ; i ++)
{
readArray[i] = a.readArray[i];
}
как бы использовать std :: copy без использования векторов (не разрешено использовать векторы для этой работы)? извините, если это вопрос noobish. –
Отредактировано. BTW, ваша инициализация, если 'readArray' в списке инициализаторов бесполезна в конструкторе копирования, вы перезаписываете его в теле. – Mat
спасибо за это, но я получаю 2 ошибки, 1. Ни один экземпляр перегруженной функции «std :: copy» не соответствует списку аргументов. 2. Ни один оператор «+» не соответствует этим операндам: S –