В C и C ++ переменные типов POD (простые старые данные) и массивы таких типов обычно не инициализируются, если вы не инициализируете их явно. Неинициализированные значения могут быть любыми, даже могут отличаться от одного запуска вашей программы к другому. Вам придется инициализировать их самостоятельно.
Бывают случаи, когда типы POD инициализируются автоматически (например, если arr
был глобальным, он был бы инициализирован нулем), но обычно рекомендуется инициализировать типы POD даже в в этих случаях.
Вы можете использовать std::fill()
или std::fill_n()
для заполнения вашего массива, что позволит вам избежать записи двойного for
l oop.
Вместо этого вы может использовать std::vector<int>
для хранения вашего двумерного массива. Это гарантированно инициализирует значения в массиве. Вы также можете использовать std::vector<std::vector<int>>
, чтобы подчеркнуть двумерный характер ваших данных, но это, вероятно, будет менее удобно.