Вопрос Помогите с ошибкой «исключение не обработано» в visual studio c++

Регистрация
14 Дек 2013
Сообщения
69
Репутация
0
Спасибо
0
Монет
0
Помогите кто шарит
306519450_b606cadae1138759a3bb12dd2d85f698_800.jpg

 
C00005 - обращение к нулевому указателю.
 
#include
#include

using namespace std;

class Array {
using type_value = int;
static const size_t lim = 8;
size_t len;
size_t cap;
type_value* buf;
public:
Array()
: len(0), cap(lim), buf(new type_value[lim]) {}
Array(const size_t length)
: len(length), cap(length), buf(new type_value[length]) {}
Array(const initializer_list& lst)
: len(lst.size()), cap(len), buf(new type_value[len]) {
copy(lst.begin(), lst.end(), this->begin());
}
Array(const Array& a)
: len(a.size()), cap(len), buf(new type_value[len]) {
copy(a.cbegin(), a.cend(), this->begin());
}
Array(Array&& a)
: len(a.size()), cap(len), buf(new type_value[len]) {
buf = a.buf;
a.buf = nullptr;
}
~Array() {
if (buf != nullptr) {
delete[] buf;
buf = nullptr;
}
}
Array& operator=(const Array& a) {
if (&a != this) {
delete[] buf;
len = a.len;
cap = a.cap;
buf = new type_value[len];
copy(a.cbegin(), a.cend(), this->begin());
}
return *this;
}
Array& operator=(Array&& a) {
delete[] buf;
len = a.len;
cap = a.cap;
buf = a.buf;
a.buf = nullptr;
return *this;
}
type_value& operator[](size_t i) {
return buf;
}
type_value& operator++() {
*++buf;
}
type_value& operator++(int i) {
*buf++;
}
size_t size() const {
return len;
}
type_value* begin() const {
return buf;
}
type_value* end() const {
return buf + len;
}
const type_value* cbegin() const {
return buf;
}
const type_value* cend() const {
return buf + len;
}
};

void show(const Array& a) {
for (auto x : a) cout
 
Что если size=0 то в -1 это ошибка понятно. Но вообще это строчка не ясна, если выше у вас условие arr > 0 увеличивает sum на это значение, а значит никогда не будет отрицательное значение в sum то для чего проверка (sum >0)?
 
Покажи откуда ты эту функцию вызывал?
 
Назад
Сверху