Цитата:
Сообщение от К@t@LoNeЦ
Необязательно.Я ввожу, начиная с mass[1].Ведь в for сначала идет присвоение элемента ,а потом увеличение номера элемента
|
Интересно вас учат. Объясняю. Допустим массив начинается в адресе 1000. Когда ты делаешь new int[5] операционная система выделяет тебе сплошной блок памяти размеров в 20 байт(int 4 байта). mass[i] это то же самое, что *(mass + (4 * i)). Поэтому обращение к mass[5] это обращение к адресу 1020, которое тебе не принадлежит. И не имеет никакого значения как ты вводишь элементы. Ввод элементов это не выделение памяти, а запись данных в уже выделенную. В C
всегда массив начинается с нуля. Если ты хочешь использовать n элементов начиная с 1, то в new нужно давать n+1. Ты же вообще делаешь в начале delete, что освобождает память и для тебя она не существует, а потом обращаешься к памяти которая не была твоей даже до этого освобождения.
Переменная k тебе не нужна. В условии второго пробега достаточно mass[i] < max. Ну и у тебя слева в условии цикла 1 вместо i. 32000 очень надеюсь нужно только для проверки.