Есть класс:
class Row {
public:
Row(int, int);
~Row() { delete [] arr; }
void print();
void rewrite(int, int);
void extend(int, int);
int _size;
private:
int * arr;
int size;
};
с реализацией конструктора:
Row::Row(int x, int y) {
_size = size = 0;
extend(x, y);
}
и реализацией функции
extend:
void Row::extend(int x, int y) {
//Записуємо вміст масива arr в temparr
int * temparr = new int(size);
for(int i = 0; i < size; ++i)
temparr[i] = arr[i];
//Збільшуємо розмір масиива arr
if (size != 0)
delete [] arr;
_size = size += 2;
arr = new int(size);
//Ініціалізуємо новий масив
for(int i = 0; i < size - 2; ++i)
arr[i] = temparr[i];
delete [] temparr;//видаляємо тимчасовий масив з динамічної пам’яті
arr[size - 2] = x;
arr[size - 1] = y;
}
В функции
main пишу следующее:
Row r(0, 0);
vector <Row> a;
a.push_back(r);
вызывает ошибку:
Инструкция по адресу "0х7с910с27" обратилась к памяти по адресу "0х003сff9d", память не может быть "read".
Подскажите пожалуйста, что не так.