#include<cassert>
#include<initializer_list>
#include<iostream>
class IntArray {
int m_length;
int *m_data;
public:
IntArray() : m_length(0), m_data(nullptr) {}
IntArray(int length) : m_length(length) {
m_data = new int(length);
}
IntArray(const std::initializer_list<int> &list) : IntArray(list.size()) {
int count = 0;
for (auto &element : list) {
std::cout << element << '\n';
m_data[count] = element;
++count;
}
}
~IntArray() { delete[] m_data; }
int& operator[](int index) {
assert(index >= 0 && index < m_length);
return m_data[index];
}
int getLength() { return m_length; }
};
int main() {
IntArray array{ 4,3,2,1 };
for (int i = 0; i < array.getLength(); i++)
std::cout << array[i] << " ";
system("pause");
return 0;
}
Точка останова достигнута в системе линий («пауза»);Критическая ошибка обнаружена в Visual Studio, в то время как приведенный выше код прекрасно работает в режиме онлайн c ++ repl.Я просто не понимаю, почему вышеупомянутая ошибка появляется в visual studio.