Может поможете?
Почему эта функция не выводит последний элемент массива?
void show(const array<int, 30>* arr) {
const int* begin = &(*arr)[0];
const int* end = &(*arr)[arr->size()-1];
for (const int* i = begin; i != end; i++)
cout « (int)*i « endl;
}
кхм, тут всё не так что нужно - куча неточностей включая непонятные операции вычисления begin и end
Остановка происходит при проверке на доступ к последнему элементу.. const int* end = &(*arr)[arr->size()];
В условии попробуй i<end
Гм. А ты ж указатель двигаешь в цикле. @no111u3, в таком случае не надо добавлять sizeof элемента?
Чет я не могу понять, почему у тебя исходно не выводит последний элемент массива, а если сдвинуть адрес на единицу дальше, то падает из-за выхода за пределы массива...
В end не надо вычитать 1
Обсуждают сегодня