Совершенно непонятная ошибка вылезает, на ровном месте:
| Код | #include <iostream> using namespace std;
class Array {
public: Array(int sz = 12) { int i = 0; _size = sz; this->pia = new int(_size); for(i = 0; i < _size; i++) { this->pia[i] = i; } }
~Array() { delete[] this->pia; }
void print() { int i = 0; for(i = 0; i < _size; i++) { cout << this->pia[i] << " "; } }
private:
int *pia; int _size;
};
int main() { Array a(15); cin.get(); }
|
Компилируется без проблем, запускаю:
| Код | ОС Windows инициировала точку останова в test.exe.
Это может быть вызвано повреждением кучи и указывает на ошибку в test.exe или в одной из загруженных им DLL.
Возможной причиной так же может быть нажатие пользователем клавиши F12, когда фокус принадлежит test.exe
Выведенное на экран окно содержит дополнительные данные для диагностики ошибки
|

Ну и программа вылетает естественно. Я предполагаю что ошибка связана с выделением памяти. Но где тут может быть ошибка?! Ведь все элементарно...
Можете объяснить что к чему? |