Выдает ошибку на этапе выполнения. Почему?
Потому что у вас в массиве зарезервировано всего 44 места (0...43), а вы используете 45 (0...44)
Вероятно,  заменить:for (int i = 0; i <= 44; ++i) {
на:for (int i = 0; i <= 44; i++) {
И увеличить размер массива.