2-й код
int Size = 16; // <-- not const
int arr1[Size];
содержит ошибку в VS C ++ (некоторые компиляторы допускают это).
В коде arr1 arr2 не инициализируются, arr1 [I], arr2 [I], arr3 [I] имеют неопределенные значения, присваивание «arr3 [I] = arr1 [I] + arr2 [I];» имеет неопределенное поведение.
Неопределенное поведение проявляется в получении произвольных значений, хранящихся в настоящее время в arr1 [I], arr2 [I], и сохранении результата «+» в arr3 [I]. Конкретные значения в arr1 [I], arr2 [I] могут меняться между прогонами или во время одного прогона.