Теперь как мне узнать, заполнен массив или нет?
Все массивы всегда «заполнены». Массив из N
элементов содержит N
элементов и не менее
Элемент тривиального типа может иметь неопределенное значение. Невозможно определить, является ли значение неопределенным. Поведение при чтении неопределенного значения не определено.
В вашем примере вы инициализировали массив значением, поэтому он заполняется элементами, инициализированными значением (до l oop, где вы меняете значения). Что в случае int
означает, что массив заполнен нулями. Проверить, равен ли элемент нулю, можно так:
if (arr[i])
// not zero
else
// is zero
, но что такое arr [size] и за его пределами?
Не существует «arr[size]
и за пределами», потому что эти индексы находятся за пределами массива. Поведение доступа к значениям за пределами массива не определено.